전체 글(152)
-
[백준] 1946 - 신입 사원
문제 링크https://www.acmicpc.net/problem/1946느낀 점문제 이해를 잘하는 것이 문제 풀이의 첫 단계라는 것을 느꼈고, 먼저 코드를 작성하기 전에 로직을 이해해야한다고 생각이 들었다. 처음에는 문제 조건이 점수라고 생각해서 조금 헤맸는데, 등수라는 것을 깨달았고, 그 후에 기준이 되는 사원을 기준으로 한 명씩 뽑으면 된다는 것을 깨달았다. 재밌는 문제!import sysT = int(sys.stdin.readline())answer = [] for _ in range(T): N = int(sys.stdin.readline()) people_list = [] for _ in range(N): people_list.append(list(map(int, s..
2024.05.22 -
[백준] 1379 - 강의실 2
문제 링크https://www.acmicpc.net/problem/1379느낀점강의실 문제(https://www.acmicpc.net/problem/1374)(https://gitdeep.tistory.com/134)와 비슷하지만, 같은 강의실에서 강의할 수 있는 강의를 생각하는 것에서 시간을 많이 소모한 것 같다. 그리고 예시로 나오는 정답이 푸는 정답과 달라서 로직이 맞나? 라고 생각을 많이 했던 듯!# stack이나 정렬 문제라고해서 완전히 그 형태로 만들어야된다는 생각은 버리고 규칙, 제약 조건을 먼저 생각해보자# [[3, 8], [12, 18], [20, 25]] 4# [[7, 13], [15, 21]] 3# [[2, 14]] 2# [[6, 20]] 1# [[6, 27]] 5import sysi..
2024.05.22 -
[백준] 25918 - 북극곰은 괄호를 찢어
# 항상 모든 것을 다 구현하려고 하지말고 문제 풀이에 필요한 과정을 잘 생각해보고 그것을 어떻게하면 가장 효율적으로 풀지 생각해야함# 괄호 문제 풀 때 카운터 변수를 잘 생각해보자!import sysinput = sys.stdin.readlineN = int(input())S = input().rstrip()min_day = 0total = 0for char in S: if char == '(': total += 1 else: total -= 1 if abs(total) > min_day: min_day = abs(total)if total == 0: print(min_day)else: print(-1)
2024.05.15 -
[백준] 1374 - 강의실
# stack이나 정렬 문제라고해서 완전히 그 형태로 만들어야된다는 생각은 버리고 규칙, 제약 조건을 먼저 생각해보자import sysimport heapqN = int(sys.stdin.readline())time_list = [[] for _ in range(N)]pq = []num_lectures = 0for ind in range(N): _, time_s, time_e = map(int, sys.stdin.readline().split()) time_list[ind].append(time_s) time_list[ind].append(time_e)time_list = sorted(time_list, key = lambda x: (x[0], x[1]))for ind in range(N..
2024.05.14 -
[백준] 23349 - 졸업사진
# 문제 조건 잘 보자! import sysN = int(sys.stdin.readline())name_table = dict()flight_table = dict()extracted_table = dict()max_number = 0for _ in range(N): name, flight, time_s, time_e = sys.stdin.readline().split() if name not in name_table: name_table[name] = [flight, [int(time_s), int(time_e)]] if flight_table.get(flight) == None: flight_table[flight] = [0 for _ in ra..
2024.05.12 -
[백준] 27968 - 사사의 사차원 사탕봉지
import sysimport bisectN, M = map(int, sys.stdin.readline().split())M_list = list(map(int, sys.stdin.readline().split()))M_list_acc = [0] * MM_list_acc[0] = M_list[0]for i in range(1, M): M_list_acc[i] = M_list_acc[i-1] + M_list[i]N_list = []for _ in range(N): N_list.append(int(sys.stdin.readline()))for ind_N in range(len(N_list)): index = bisect.bisect_left(M_list_acc, N_list[ind_N]) ..
2024.05.09