본문 바로가기
728x90

IT/알고리즘11

[백준] 2108 통계학 파이썬 딕셔너리 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net import sys N = int(sys.stdin.readline()) n_list = [] for i in range(N): n_list.append(int(sys.stdin.readline())) n_list.sort() counts = {} for i in n_list: if i in counts: counts[i] += 1 else: counts[i] = 1 counts = sorted(counts.i.. 2022. 2. 7.
[백준] 11729 하노이 탑 https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net N = int(input()) def hanoi(N, x, y): if N == 1: print(x, y) else: hanoi(N-1, x, 6-x-y) print(x, y) hanoi(N-1, 6-x-y, y) print(2**N - 1) hanoi(N, 1, 3) 솔직히 하노이탑의 규칙을 모르겠어서 구글링을 좀 해봤다.. 우선 N개의 고리가 1번 장대에 있을 때 N-1개를 2번 .. 2022. 2. 1.
[백준] 2447 별 찍기 https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net N = int(input()) star = '*' star_list = [[' ' for i in range(N)] for i in range(N)] def stars(N, x, y): if N == 1: star_list[x][y] = '*' else: N = N // 3 for i in range(3): for j in range(3): if i != 1 or j !.. 2022. 2. 1.
[백준] 10872 팩토리얼, 10870 피보나치 수 https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 이번 문제는 재귀함수에 관한 문제였다. 문제는 재귀함수가 기억이 나지 않은 것이었다. 반복한다는 것만 기억이 났었는데 그걸 바탕으로 열심히 생각해보니 대.. 2022. 1. 17.
[백준] 1011 Fly me to the Alpha Centauri 파이썬 https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net T = int(input()) for i in range(T): x, y = map(int,input().split()) dist = y - x num = 1 while True: if num**2 - num + 1 2022. 1. 16.
[백준] 2869 달팽이는 올라가고 싶다. https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net up_down = list(map(int, input().split())) if (up_down[2] - up_down[0]) % (up_down[0] - up_down[1]) == 0: print((up_down[2] - up_down[0]) // (up_down[0] - up_down[1]) + 1) else: print((up_down[2] - up_down[0]) // (up_down[0] - up_down[1]) + 2) 유명한 달팽이 문제의 기.. 2022. 1. 13.
[백준] 1712 손익분기점 https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net cost_list = list(map(int, input().split())) if cost_list[1] >= cost_list[2]: print(-1) else: print(int(cost_list[0] / (cost_list[2] - cost_list[1]) + 1)) 비용이 더 크면 답이 없으니 -1이 나오고 아니라면 매년 들어가는 돈을 대수 당 이익으로 나눠주고 1을 더해주면 손익분기점이 된다. 2022. 1. 13.
[백준] 1152 단어의 개수 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net word_list = list(map(str, input().split())) print(len(word_list)) 스플릿한 후 갯수를 구한다. 2022. 1. 13.
[백준] 4673 셀프 넘버 생성자가 없는 숫자를 구하는 문제이다. 정확히 11개월 전 풀었었는데 다시 풀려고하니 기억이 잘 나지 않아 힘들었다. 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 self_num = list(range(1,10000)) for i in range(1, 10000): if i < 10 and i*2 < 20: self_num.remove(i*2) elif 10 2022. 1. 11.
[백준] 4344 평균은 넘겠지 import sys sys.stdin = open('input.txt') T = int(input()) for i in range(T): std_score = list(map(int, input().split())) std_num = std_score.pop(0) count = 0 a = 0 for i in range(std_num): if sum(std_score)/std_num < std_score[i]: count += 1 ratio = count/std_num*100 print('{:.3f}%'.format(ratio)) https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 .. 2022. 1. 11.
728x90