분류 전체보기

    [백준 파이썬] # 4673 셀프 넘버

    Silver V # 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 d(n): text = str(n) if len(text) == 1: t = int(text[0]) + int(text[0]) if len(text) == 2: t = int(text[0]) + int(text[1]) + int(text) if len(text) == 3: t = int(..

    [백준 파이썬] # 11727 2xn 타일링 2

    Silver III # 11727 2xn 타일링 2 링크 : https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 풀이 n = int(input()) dp = [0] * n dp[0] = 1 for i in range(1, n): if i%2 == 0: dp[i] = dp[i-1] + dp[i-1] - 1 else: dp[i] = dp[i-1] + dp[i-1] + 1 print(dp[-1] % 10007) 후기 이전 문제인 11726과 동일한 유형의 문제다. 수열의 n번째 값을..

    [백준 파이썬] # 11726 2xn 타일링

    Silver III # 11726 2xn 타일링 링크 : https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 풀이 n = int(input()) if n == 1: print(1) else: dp = [0] * n dp[0] = 1 dp[1] = 2 for i in range(2, n): dp[i] = dp[i-1]+dp[i-2] print(dp[-1] % 10007) 후기 결과부터 말하자면 피보나치 수열임을 발견할 수 있다. dp를 이용해서 원하는 값을 찾아가도록 구..

    [백준 파이썬] # 1620 나는야 포켓몬 마스터 이다솜

    Silver IV # 1620 나는야 포켓몬 마스터 이다솜 링크 : https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 풀이 import sys N, M = map(int, sys.stdin.readline().split()) dogam = {} for i in range(1, N+1): a = sys.stdin.readline().rstrip() dogam[i] = a dogam[a] = i for i in range..

    [백준 파이썬] # 15829 Hashing

    Bronze II # 15829 Hashing 링크 : https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 풀이 dic = {'a':1,'b':2,'c':3,'d':4,'e':5, 'f':6,'g':7,'h':8,'i':9,'j':10, 'k':11,'l':12,'m':13,'n':14,'o':15, 'p':16,'q':17,'r':18,'s':19,'t':20, 'u':21,'v':22,'w':23,'x':24,'y':25, 'z':26} r ..

    [백준 파이썬] # 4949 균형잡힌 세상

    Silver IV # 4949 균형잡힌 세상 링크 : https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 풀이 while True: text = input() # 반복문 탈출 조건 설정 if text == '.': break s = [0] # s[-1]을 이용할 때 에러 방지를 위해 s = [] 대신 사용 for i in text: if i == '(': s.append('small') elif i == ')': if s[-1] ==..

    [백준 파이썬] # 9012 괄호

    Silver IV # 9012 괄호 링크 : https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 풀이 T = int(input()) for i in range(T): text = input() cnt = 0 for i in text: if i == '(': cnt += 1 else: cnt -= 1 if cnt 0: print('NO') elif cnt == 0..

    [백준 파이썬] # 9375 패션왕 신해빈

    Silver III # 9375 패션왕 신해빈 링크 : https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 풀이 T = int(input()) for i in range(T): n = int(input()) cloth = {} for j in range(n): name, kinds = input().split() if kinds in cloth: cloth..

    [백준 파이썬] # 11723 집합

    Silver IV # 11723 집합 링크 : https://www.acmicpc.net/problem/11723 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 풀이 import sys M = int(sys.stdin.readline()) S = [0] * 21 for i in range(M): order = sys.stdin.readline().split() if order[0] == 'add': if S[int(order[1])] == 0: S[int(order[1])] = ..

    [백준 파이썬] # 17219 비밀번호 찾기

    Silver IV # 17219 비밀번호 찾기 링크 : https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 풀이 N, M = map(int, input().split()) dic = {} for i in range(N): link, password = input().split() dic[link] = password for i in range(M): order = input() if order in dic: print..