https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr def solution(s): answer = '' eng = { 'one': '1', 'two': '2', 'three': '3', 'four': '4', 'five': '5', 'six': '6', 'seven': '7', 'eight': '8', 'nine': '9', 'zero': '0' } num = '' for word in s: if wo..
https://programmers.co.kr/learn/courses/30/lessons/72412 0: left, right = 0, len(scores) # lower bound 이용해서 인덱스 찾기 while left = point: right = mid else: left = mid + 1 answer.append(len(scores) - left) else: answer.append(0) return answer
programmers.co.kr/learn/courses/30/lessons/70129 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr def solution(s): answer = [0, 0] while(s != '1'): answer[0] += 1 n = '' for num in s: if num == '1': n += '1' else: answer[1] += 1 s = bin(len(n))[2:] return answer
programmers.co.kr/learn/courses/30/lessons/12907 코딩테스트 연습 - 거스름돈 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를 구하기로 하였습니다. 예를 들어서 손님께 5 programmers.co.kr def solution(n, money): answer = 0 dp = [[0] * (n+1) for _ in range(len(money)+1)] dp[0][0] = 1 for i in range(1, len(money)+1): for j in range(n+1): if money[i-1] > j: dp[i][j] = dp[i-1][j] else: dp[i][j..
programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr def check(n): return list(bin(n)).count('1') def solution(n): answer = n res = check(answer) while(1): answer += 1 if check(answer) == res: break return answer
www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net import sys from itertools import combinations n, s = map(int, sys.stdin.readline().split()) num = list(map(int, sys.stdin.readline().split())) answer = 0 for i in range(1, n+1): com = list(combinations(num, i)) ..
programmers.co.kr/learn/courses/30/lessons/12913 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr import copy def solution(land): answer = 0 length = len(land) dp = copy.deepcopy(land) for i in range(1, length): for j in range(4): for k in range(4): if k != j: dp[i][j] = max(dp[i][j], land[i][j] +..
www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net import sys N = int(sys.stdin.readline()) strings = [] for _ in range(N): word = input() strings.append((word, len(word))) strings = list(set(strings)) strings = sorted(strings, key = lambda x:(x[1], x[0])) for string in strin..