[BaekJoon] 1003 피보나치 함수
·
💯 CodingTest/BaekJoon
▶ 문제 더보기 https://www.acmicpc.net/problem/1003 import sys n = int(sys.stdin.readline().rstrip()) data = {i : 0 for i in range(41)} # 숫자의 최대값이 40 result = [[0, 0] for i in range(41)] result[0][0] = 1 result[1][1] = 1 def fibo(n): if n == 0: return 0 elif n == 1: return 1 elif data[n] > 0: return data[n] else: data[n] = fibo(n-1) + fibo(n-2) result[n][0], result[n][1] = result[n-1][0] + result[n-2]..
[BaekJoon] 18111 마인크래프트
·
💯 CodingTest/BaekJoon
import sys n, m, b = map(int,sys.stdin.readline().rstrip().split()) groundHeight = [list(map(int,sys.stdin.readline().rstrip().split())) for i in range(n)] #numOfH ={i:0 for i in range(257)} linearGround = [] minH = 256 maxH = 0 for raw in groundHeight : if min(raw) maxH: maxH = max(raw) for h in raw: linearGround.append(h) linearGround.sort(reverse=True) ..
[Programmers] 숫자 문자열과 영단어
·
💯 CodingTest/Programmers
문제 사이트 더보기 https://programmers.co.kr/learn/courses/30/lessons/81301 ▶ 코드 def solution(s): words = {'zero': '0', 'one':'1', 'two':'2', 'three':'3','four':'4', 'five':'5', 'six':'6', 'seven':'7','eight':'8','nine':'9'} temp = '' answer = '' for c in s: if c in words.values() : answer += c else: temp += c if temp in words.keys() : answer += words[temp] temp = '' return int(answer) ▶ 문제 풀이 1. 초기 `wo..
[Programmers] 신고결과 받기
·
💯 CodingTest/Programmers
문제 페이지 더보기 https://programmers.co.kr/learn/courses/30/lessons/92334 def solution(id_list, report, k): count = dict() reportCount = dict() report = list(set(report)) # 동일 신고에 대한 중복값 처리를 위해 set 변환 후 list 변환 for id in id_list: # 딕셔너리 초기화 count[id] = 0 reportCount[id] = 0 for str in report : # report에 저장된 각각의 문자열 파싱해 신고 횟수 누적 src, trg = str.split(' ') count[trg] += 1 for str in report : # src, trg =..
[BaekJoon] 15829 Hashing
·
💯 CodingTest/BaekJoon
n = int(input()) word = input() result = 0 alpha = { '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, } for i in range(len(word)): result += alpha[word[i]] * (31**i) print(result % 1234567891) 문제풀이 1. 각 알파벳 값을 지정했다. => 아스키코드를 사용해도 되지만 한번 이렇게 해보고 싶었..
[BaekJoon] 2805 나무자르기
·
💯 CodingTest/BaekJoon
n, m = map(int,input().split()) treeHeight = list(map(int, input().split())) # 적어도 M미터의 나무를 집에 가져가기 위해서 절단기에 설정할 수 있는 높이의 최댓값을 출력한다. treeHeight.sort() resultList=list() def binarySearch(data, m2): low = 1 # m은 1= m2: # mid(H) 값을 높여서 탐색해야함 if result < mid : result = mid low = mid + 1 else: high = mid - 1 return result #print(max(resultList)) #이렇게 max () 를 사용했을때 콜스택 초과가 나는 경우가 있을 수도 있음 따라서 값을 계속 변..
[BaekJoon] 1654 랜선 자르기
·
💯 CodingTest/BaekJoon
k, n = map(int,input().split()) kLength = list() result = list() for i in range(k): kLength.append(int(input())) kLength.sort() def binarySearch(data, n2): low=1 # 랜선의 길이는 자연수라고 명시되어있다.. # 조심하자.. # low를 0으로 해놓고 헛짓거리함.. high = data[len(data)-1] + 1 ''' 4 4 100 100 100 100 과 같은 입력이 들어왔을때 high값도 탐색 범위에 포함시키기 위해 1더해주기. ''' while (low 그 후 정렬 3. 이진 탐색 함수 작성 => 각 중간값을 반복할때마다 그때 길이로 각각의 랜선에서 나올 수 있는 개수를..