반응형

구현 8

[BOJ] 2108 - 통계학

https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net import sys from collections import Counter n = int(sys.stdin.readline()) data = [] for i in range(n): data.append(int(sys.stdin.readline())) data.sort() avg = sum(data) / len(data) # 산술 평균 mid = data[(n - 1) // 2] # 중앙값 most_nums =..

알고리즘/BOJ 2022.01.28

[BOJ] 4673 - 셀프 넘버

https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net def func(n): sum = 0 while(n >= 10): sum += n % 10 n = n // 10 sum += n return sum data = set() not_self = set() for n in range(1, 10001): data.add(n) result = n + func(n) not_self.add(result) re..

알고리즘/BOJ 2022.01.14

[BOJ] 5622 - 다이얼

https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net data = input() array = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ'] sum = 0 for i in data: for j in array: if i in j: sum += array.index(j) + 3 break print(sum) 이 문제의 전제 조건을 보면 하나의 문자를 처리하면 원래의 위치에서 다시 시작해야 하므로 모든 입력을 처리하는데 걸리는 시간은 문자열의 순서와는 상관없이 똑같다는 것을 알 ..

알고리즘/BOJ 2022.01.09

[BOJ] 1157 - 단어 공부

https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 나의 코드 data = input() data = data.upper() count = [0] * 26 for i in data: index = ord(i) - ord('A') count[index] += 1 max = 0 for i in range(len(count)): if max < count[i]: max = count[i] max_alpha = i result = chr(ord('A') + max_alpha) count...

알고리즘/BOJ 2022.01.06

[이취코테] 왕실의 나이트

https://youtu.be/2zjoKjt97vQ 이 문제의 해설 영상이다. 문제 체스판과 같은 8 x 8 좌표 평면에서 나이트는 특정한 위치에서 다음과 같은 2가지 경우로 이동할 수 있다. 1. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기 2. 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기 8 x 8 좌표 평면 상에서 나이트의 위치가 주어졌을 때 나이트가 이동할 수 있는 경우의 수를 출력하는 프로그램을 작성하시오. (단, 좌표평면 밖으로는 나갈 수 없다.) 이때 행 위치는 1부터 8로 표현하며, 열 위치는 a부터 h로 표현한다. 입력 조건: 첫째 줄에 8 x 8 좌표 평면 상에서 현재 나이트가 위치한 곳의 좌표를 나타내는 두 문자로 된 문자열이 입력된다. 입력 문자는 a1처럼 열과 행..

[BOJ] 1439 - 뒤집기

https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net import sys data = sys.stdin.readline().rstrip() count0 = 0 count1 = 0 if data[0] == '1': count0 += 1 else: count1 += 1 for i in range(len(data) - 1): if data[i] != data[i+1]: if data[i+1] == '1': count0 += 1 else: count1 +=..

알고리즘/BOJ 2022.01.04
반응형