[Coding Test]/[백준]

    [백준] 25501 파이썬(python) : 재귀의 귀재

    [백준] 25501 파이썬(python) : 재귀의 귀재

    25501번 : 재귀의 귀재 힌트를 따라가면 맞출 수 있는 문제다. import sys t = int(sys.stdin.readline()) for _ in range(t): string = sys.stdin.readline().rstrip() cnt = 0 def recursion(string, l, r): global cnt cnt += 1 if l >= r: return 1 elif string[l] != string[r]: return 0 else: return recursion(string, l+1, r-1) def isPalindrome(string): return recursion(string, 0, len(string)-1) print(isPalindrome(string), cnt) 파이썬..

    [백준] 6603 파이썬(python) : 로또 - (★)

    [백준] 6603 파이썬(python) : 로또 - (★)

    6603번 : 로또 조합론을 이용한 풀이) import sys from itertools import combinations while True: s = list(map(int, sys.stdin.readline().split())) #1 k = s.pop(0) #2 if k == 0: #3 break for tmp in combinations(s, 6): #4 nums = list(tmp) #5 nums.sort() print(*nums) print() #1 : 숫자를 입력받고 #2 : 리스트의 첫번째 원소를 k로 지정(리스트의 pop()메서드는 원소를 뺀 후 자동으로 재정렬) #3 : 만일 k가 0이면 반복문 탈출 #4 : 리스트 s에서 6개의 숫자를 꺼내는 튜플을 만들고 #5 : 정렬을 위해 튜플을..

    [백준] 4358 파이썬(python) : 생태학 - (★)

    [백준] 4358 파이썬(python) : 생태학 - (★)

    4358번: 생태학 *해시를 정렬하는 방법은 리스트에 차례대로 넣어서 원하는 순서대로 정렬하는 방법이 있다. hash = {} while True: try: tree = input() if tree not in hash: hash[tree] = 1 else: hash[tree] += 1 except EOFError: break arr, num = [], 0 for key, value in hash.items(): arr.append([key, value]) num += value arr.sort() for i in arr: print(f'{i[0]} {i[1]/num * 100:.4f}') 11718번: 그대로 출력하기

    [백준] 12100 파이썬(python) : 2048 (Easy)

    [백준] 12100 파이썬(python) : 2048 (Easy)

    12100번 : 2048 (Easy) 예제2) 4 2 0 2 8 0 0 2 2 0 0 0 0 0 0 0 0 # 16 예제3) 4 2 4 16 8 8 4 0 0 16 8 2 0 2 8 2 0 # 32 백트래킹 문제이다. 상하좌우 블록을 미는 함수를 구현해주는것이 포인트인데 블록들을 비교하기 위해 특정 위치를 가리키는 포인터를 사용할 수 있다. 블록을 위로 미는 과정을 생각하면 열의 첫번째 행을 포인터로 설정하고 열의 두번째 행부터 현재행으로 설정하여 포인터와의 비교를 해주며 블록을 밀 수 있다. 포인터와의 비교를 위해서는 항상 현재 가리키는 블록은 0이 아닌 블록이어야 한다. 포인터와 현재행이 만나수 있는 경우는 3가지가 있는데 다음과 같다. 포인터가 가리키는 블록이 0일때 포인터가 가리키는 블록이 현재블..

    [백준] 2776 파이썬(python) : 암기왕

    [백준] 2776 파이썬(python) : 암기왕

    2776번 : 암기왕 틀린코드) import sys t = int(sys.stdin.readline()) for _ in range(t): n = int(sys.stdin.readline()) note1 = list(map(int, sys.stdin.readline().split())) m = int(sys.stdin.readline()) note2 = list(map(int, sys.stdin.readline().split())) note1.sort() def binary_search(start, end, target): while start

    [백준] 17219 파이썬(python) : 비밀번호 찾기

    [백준] 17219 파이썬(python) : 비밀번호 찾기

    17219번 : 비밀번호 찾기 import sys n, m = map(int, sys.stdin.readline().split()) hash = {} for _ in range(n): string = sys.stdin.readline().split() if string[0] not in hash: hash[string[0]] = string[1] for _ in range(m): site = sys.stdin.readline().rstrip() print(hash[site])