본문 바로가기

반응형

분류 전체보기

(241)
[Python] 백준 1463 1로만들기 코드 작성 n = int(input()) d = [0] * (n + 1) for i in range(2, n + 1): d[i] = d[i - 1] + 1 if i % 3 == 0: d[i] = min(d[i], d[i // 3] + 1) if i % 2 == 0: d[i] = min(d[i], d[i // 2] + 1) print(d[n]) 문제 풀이 다이나믹 프레그래밍은 전에 했던 루트를 다시 반복하고 새로운 명령어에 한가지 방법을 추가한다. 숫자 10은 3으로 나누어 떨어지지 않기 때문에 10 > 5 > 4 > 2 > 1 순서로(4번) 생각해 볼 수 있지만, 10 > 9 > 3 > 1의 순서로(3번) 나타낼 수 있다. 마찬가지로 9의 값은 9 > 3 > 1로 표현(2번)되며 3의 값은 3 > 1로 ..
[Python] 10808 알파벳 개수 n = input() lst = [0]*26 for i in n: lst[ord(i)-97] += 1 #a~z의 아스키코드는 97~122 for i in lst: print(i, end=' ')
[Python] 백준 9613 GCD합 코드 작성 import math n = int(input()) for _ in range(n): k = list(map(int, input().split())) sum = 0 for i in range(1,len(k)): for j in range(i+1, len(k)): sum += math.gcd(k[i],k[j]) print(sum) 코드 풀이 #1. GCD(Greatest Common Divisor) 최대 공약수는 math 모듈을 불러와서 파이선에 내장되어 있는 함수를 사용한다. cf) LCM(Least Common Multiple): 최소공배수 #2. i와 i+1비교 k의 리스트중 0번째를 제외한 1번째부터 비교할텐데 1번째와 2,3,4번째 2번째와 3,4,번째 3번째와 4번째 이렇게 반복하기 ..
[Python] 백준 11655 ROT13 코드 작성 word=input() ans='' for i in word: if 'a'
[Python] 백준 11656 접미사 배열 코드 작성 word = input() lst = [] for i in range(len(word)): lst.append(word[i:]) lst.sort() for i in lst: print(i) 코드 풀이 #1 단어를 입력하고 그 길이만큼 for를 돌린다. #2 0번째부터 단어(word[0:]) 1번째부터 단어(word[1:]) 2번째부터 단어(word[2:]) 이렇게 10개의 단어를 lst라는 리스트 안에 넣는다 #3 정렬하고 다시 for를 이용하여 순서대로 출력
[Python] 백준 9020 골드바흐의 추측 코드 작성 def pr(n): if n ==1: return False for i in range(2, int(n**0.5)+1): if n%i == 0: return False else: return True import sys n = int(input()) for i in range(n): num = int(sys.stdin.readline()) a = num//2 b = num//2 while True : if pr(a) and pr(b): print(a,b) break else: a-=1 b+=1 코드 풀이 #0 문제순서 (1) 에라토스테네스의 체를 이용하여 함수 만들기 (2) 입력값 num을 2로 나눈 중간값 a,b에서 a는 1씩 감소하는 값, b는 1씩 증가하는 값 모두 소수가 되는 조건까지 ..
[Python] 백준 10989 수 정렬하기3 코드 작성 import sys input = sys.stdin.readline n = int(input()) k = [0]*10001 for _ in range(n): k[int(input())] += 1 for i in range(1,10000): if k[i] != 0: for _ in range(k[i]): print(i) 코드 풀이 #0. 이제까지 풀었던 것 중 계속 잊어버리고 공부하고, 잊어버리고 공부하고를 반복했던 문제이다. 문제를 틀리면 정답 코드를 보고 다시 글로 적어본다. 다음날 다시 반복하는데 실패하면 그 다음날 또 반복한다. 그렇게 12일이나 걸렸다. #1. 메모리 초과 코드 정렬문제는 간단하게 나타낼 수 있는데 아래 같이 작성할 경우 이 문제의 경우 메모리 초과가 나온다. impor..
[Python] 백준 1874 스택 수열 코드 작성 n = int(input()) stack = [] ans = [] cur = 1 for _ in range(n): num = int(input()) while cur

반응형