목록 code review (147)
KEEP GOING
https://www.acmicpc.net/problem/15486 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net 1. 코드 구현 n = int(input()) t = [0]*(n+1) p = [0]*(n+1) dp = [0]*(n+2) for i in range(n): t[i+1], p[i+1] = list(map(int, input().split())) for i in range(n, 0, -1): dp[i] = max(dp[i+1], dp[i]) if (i-1) + t[i]
https://www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net 1. 코드 구현 students = {} d = [(-1,0),(0,1),(0,-1),(1,0)] n = int(input()) maze = [[0]*(n+1) for _ in range(n+1)] for _ in range(n**2): a = list(map(int, input().split())) students[a[0]] = a[1:] tmp = ..
https://leetcode.com/problems/delete-duplicate-emails/ Delete Duplicate Emails - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 이메일이 중복된 경우, id 값이 작은 값을 제외하고 제거해줘야 한다. 이를 구현하면 아래와 같이 풀이할 수 있다. 1. 정답인 코드 [INNER JOIN을 사용한 풀이] DELETE p1 FROM Person p1, Person p2 WHERE p1.email = p2.e..
https://www.acmicpc.net/problem/17086 17086번: 아기 상어 2 첫째 줄에 공간의 크기 N과 M(2 ≤ N, M ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 공간의 상태가 주어지며, 0은 빈 칸, 1은 아기 상어가 있는 칸이다. 빈 칸의 개수가 한 개 이상인 입력만 주어진다. www.acmicpc.net 1. 코드 구현 import sys n,m = map(int, input().split()) sharks = [] for i in range(n): # 한 행씩 받아오기 places = list(map(int, input().split())) for j, place in enumerate(places): if place == 1: # 상어의 위치 sharks.appen..
https://www.acmicpc.net/submit/1244/37936486 로그인 www.acmicpc.net 0. 정답인 코드 n = int(input()) # idx 값 맞추기 위해 0번에 미지값 추가 bulbs = [-1] + list(map(int, input().split())) k = int(input()) students = [tuple(map(int, input().split())) for _ in range(k)] for sex, num in students: # 성별이 남자일때 if sex == 1: for i in range(num, n+1, num): bulbs[i] = 1 - bulbs[i] # 성별이 여자일때 else: bulbs[num] = 1 - bulbs[num] fo..
https://www.acmicpc.net/problem/2138 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 www.acmicpc.net n = int(input()) bulb = list(map(int, input())) target = list(map(int, input())) def change(A, B): L = A[:] press = 0 for i in range(1, n): # 이전 전구가 같은 상태면 pass if L[i-1] == B[i-1]: continue # 상태가 다를 경우 pres..
https://www.acmicpc.net/problem/2885 2885번: 초콜릿 식사 학교 근처 편의점에 새 초콜릿이 들어왔다. 이 초콜릿은 막대 모양이고, 각 막대는 정사각형 N개로 이루어져 있다. 초콜릿의 크기(정사각형의 개수)는 항상 2의 제곱 형태이다. 즉, 1, 2, 4, 8, 16, ... www.acmicpc.net 다음과 같이 k 값으로 6이 주어진 경우, 상근이가 구매해야하는 가장 작은 초콜릿의 사이즈는 2의 제곱수인 8이어야 하고 사이즈가 D일 경우, D/2으로만 자를 수 있다고 했기에 2번을 자르면 상근이가 원하는 초콜릿 6개를 만들 수 있다. 해당 알고리즘을 구현하자면 아래와 같다. import sys input = sys.stdin.readline # 초콜릿 먹는 개수 k =..
https://www.acmicpc.net/problem/1911 1911번: 흙길 보수하기 어젯밤 겨울 캠프 장소에서 월드 본원까지 이어지는, 흙으로 된 비밀길 위에 폭우가 내려서 N (1 start: start = cur # 널빤지의 개수 카운트 while start < end: start += L cnt += 1 cur = start print(cnt) 2. 코드 구현 import sys input = sys.stdin.readline N, L = map(int, input().split()) # 입력과 동시에 좌표 오름차순 정렬 pools= sorted(tuple(map(int, input().split())) for i in range(N)) # 널빤지의 개수, 웅덩이를 덮은 널빤지의 마지막 위..