목록코딩테스트/백준 online Judge (15)
일상 코딩
https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net N, C = map(int, input().split()) X = sorted([int(input()) for _ in range(N)]) sta = X[1] - X[0] end = X[-1] - X[0] result = 0 while sta = val + mid: val = X[i] cnt += 1 if cnt >= C: sta = mid + ..
https://www.acmicpc.net/problem/1236 1236번: 성 지키기 첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다 www.acmicpc.net N, M = map(int, input().split()) B = [list(input()) for _ in range(N)] cnt = 0 def X_check(arr): ret = 0 for i in arr: if 'X' in i: continue else: ret += 1 return ret def rotated(array_2d): return [list(elem) for elem..
https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net N = int(input()) S = dict() for _ in range(N): book = input() if book not in S: S[book] = 0 S[book] += 1 print(sorted(list(S.items()), key=lambda x: (-x[1], x[0]))[0][0]) 입력 예제 8 icecream peanuts peanuts chocolate candy..
https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net Q = input() A = input() cnt = 0 while Q: if Q[:len(A)] == A: cnt += 1 Q = Q[len(A):] else: Q = Q[1:] print(cnt) 입력 예제 ababababa aba 출력 예제 2 슬라이싱을 활용하여 풀어보았다. while문 종료 조건을 Q가 '' 완전히 빌때까지로 놓았고, 앞부분부터 정답 문자열 길이만큼 슬리이싱한 부분이 A 정답과..
https://www.acmicpc.net/problem/7490 7490번: 0 만들기 각 테스트 케이스에 대해 ASCII 순서에 따라 결과가 0이 되는 모든 수식을 출력한다. 각 테스트 케이스의 결과는 한 줄을 띄워 구분한다. www.acmicpc.net from itertools import product as pd T = int(input()) for _ in range(T): n = input() for operator in list(pd(' +-', repeat=int(n)-1)): formula = '' for idx, op in enumerate(operator, 1): formula += str(idx) + op formula += n if eval(formula.replace(' ', ..
https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net N, r, c = map(int, input().split()) M = {1: 0} def Z(n, x, y): if n in M: return M[n] else: n //= 2 for i in range(2): for j in range(2): if x < n*(i+1) and y < n*(j+1): ret = (2*i+j)*(n*n) + Z(n, x-n*i, y-n*j) M[n] = ..
https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net import sys lst = [0] * 10001 N = int(sys.stdin.readline()) for _ in range(N): lst[int(sys.stdin.readline())] += 1 cnt = 0 for i in range(10001): if lst[i] != 0: for _ in range(lst[i]): print(i) cnt += 1 if cnt == N: exit(0) 입력 예시 10 5..
https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net T = int(input()) for _ in range(T): L = "" R = "" S = input() for s in S: if '' == s: if R: L += R[-1] R = R[:-1] elif '-' == s: if L: L = L[:-1] else: L += s L += R[::-1] print(L) 입력예시 2
https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net T = int(input()) for _ in range(T): N, M = map(int, input().split()) q = list(map(int, input().split())) ck = [False]*N # target 번호 추적 체크 리스트 ck[M] = True # target만 True로 변환 cnt = 0 target = q[M] idx_t = M def down_shift(idx)..
https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net N = int(input()) count = 1 stack = [] result = "" for _ in range(N): Answer = int(input()) while count