코딩테스트/BOJ


99클럽 코테 스터디 | 비기너 | 20일차https://www.acmicpc.net/problem/4158import syswhile True: N, M = map(int, sys.stdin.readline().strip().split()) if N == 0 and M == 0: break sg_cd_set = set() for _ in range(N): sg_cd = sys.stdin.readline().strip() sg_cd_set.add(sg_cd) common_cd = 0 for _ in range(M): sy_cd = sys.stdin.readline().strip() if sy_cd in sg_c..


99클럽 코테 스터디 | 비기너 | 19일차https://www.acmicpc.net/problem/20551 import sysinput = sys.stdin.readlinen, m = list(map(int, input().rstrip().split()))nums = sorted([int(input().rstrip()) for _ in range(n)])def lower_bound(target): start = 0 end = n - 1 while start target: end = mid - 1 elif nums[mid] == target: if end == mid: break end = mid if num..


99클럽 코테 스터디 | 비기너 | 18일차https://www.acmicpc.net/problem/1590import sysN, T = map(int, sys.stdin.readline().split())bus_info = []for _ in range(N): S, I, C = map(int, sys.stdin.readline().split()) bus_info.append([S, I, C])min_waiting_time_list = []for S, I, C in bus_info: bus_arrival = [] time = S for i in range(C): if time == T: min_waiting_time_list.append(0) ..


접근 방법문제 9012번과 마찬가지로 stack을 활용하여 문제를 해결한다. 1. stack에는 ( 또는 [만 push로 들어간다.2. ) 또는 ]이 나오면 pop을 통해 stack에서 꺼낸다.3. 만일 pop을 했는데 문자열이 비어있거나 (와 [이 아니라면, 즉 짝이 아니라면 해당 문자열은 균형이 아니다.4. 문자열을 전부 확인했는데 stack에 남은 괄호가 있으면 해당 문자열은 균형이 아니다. import syswhile True: line = sys.stdin.readline().rstrip() if line == ".": break stack = [] is_balance = True for l in line: if l == "(" or l == ..


접근 방법 1 - 괄호 개수를 count하여 비교이 문제의 조건을 구현하기 위해 아래의 두 가지 조건을 충족해야 한다. 1. 괄호를 더하는 과정에서 어느 순간에도 )가 (보다 많아지면 안된다.2. (와 )의 개수는 서로 같아야 한다. 이를 위해 (와 )의 개수를 각각 left, right로 두고 코드를 구현하였다.import sysT = int(input())candidates = []for _ in range(T): candidate = sys.stdin.readline().strip() candidates.append(candidate)for letter in candidates: left = 0 right = 0 for l in letter: if right ..


99클럽 코테 스터디 | 비기너 | 15일차접근 방법1. student라고 하는 dictionary 안에 입력 받은 n명의 학생 이름을 key 값으로 세팅한다.2. n명의 학생들로부터 받은 좋아하는 학생 이름에 대하여 student dict 안에 key가 있으면 value를 하나씩 더한다.3. student dict를 정렬한다.4. student의 key, value를 순서대로 프린트한다. import sysn = sys.stdin.readline()names = sys.stdin.readline().split()# set student dictstudent = {}for name in names: student.setdefault(name, 0)# vote popularity of each stu..


99클럽 코테 스터디 | 비기너 | 14일차https://www.acmicpc.net/problem/29723 import sysN, M, K = map(int, sys.stdin.readline().split())subjects = []for _ in range(N): s, p = sys.stdin.readline().split() subjects.append([s, int(p)])t_list = []for _ in range(K): t = sys.stdin.readline().strip() t_list.append(t)base_score = 0non_recommended = []for s, p in subjects: if s in t_list: base_scor..


99클럽 코테 스터디 | 비기너 | 13일차import sysN = int(sys.stdin.readline())words = set()for _ in range(N): word = sys.stdin.readline().strip() words.add(word)sorted_words = sorted(words, key=lambda x: (len(x), x))for word in sorted_words: print(word) lambda 함수익명 함수를 정의할 때 사용하는 키워드로, 이름 없이 간단한 함수를 한 줄로 작성할 수 있게 도와준다. list나 set 안의 문자열을 정렬할 때 기준을 지정하거나, map()이나 filter()와 함께 사용하거나 일회성으로 함수가 필요할 때 사용한다...


99클럽 코테 스터디 | 비기너 | 12일차접근 방법 11. set을 이용하여 플레이하기를 신청한 사람들의 이름을 people()에 정렬한다.2. 게임 Y, F, O는 임스를 제외하고 각각 1명, 2명, 3명이 더 필요하므로, 각각의 입력에 따라 people의 전체 길이를 1, 2, 3으로 나눈 값을 play_time 변수로 리턴한다. def solution(people, game): play_time = 0 if game == "Y": play_time = len(people) elif game == "F": play_time = len(people) // 2 elif game == "O": play_time = len(people) // 3 ..