목록파이썬 (140)
홍우진의 개발 일기장
문제 링크 https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 풀이 코드 import sys input = sys.stdin.readline n = int(input()) s = dict() for i in range(n): a, b = map(str, input().split()) if b == "enter": s[a] = 1 else: del s[a] s = sorted(s.keys(), reverse=T..
문제 링크 https://www.acmicpc.net/problem/10867 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net 풀이 코드 N = int(input()) number_list = list(map(int, input().split())) for i in sorted(list(set(number_list))): print(i, end = ' ') 코드 해석 수를 리스트에 저장한다. 그 후 set으로 중복을 방지하고 정렬한다.
문제 링크 https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net 풀이 코드 import sys input = sys.stdin.readline board = {} check = [[0]*5 for i in range(5)] for i in range(5): a = list(map(int,input().split())) for j in range(5): board[a[j]] = (i,j) tick = 0 for _ in range(5): a = list(map(in..
문제 링크 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 풀이 코드 S = input() count = 0 for i in range(len(S)-1): if S[i] != S[i+1]: count += 1 print((count + 1) // 2) 코드 해석 먼저 규칙을 찾는다. 0과 1의 갯수와 상관 없이 반복되는 패턴은 다음과 같다. 0 or 1 -> 0번 01 -> 1번 010 -> 1번 0101 -> 2번 01010 -> 2번 010..
문제 링크 https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 풀이 코드 n, m = map(int, input().split()) arr = [] for i in range(n): arr.append(list(input())) check = min(n, m) answer = 0 for i in range(n): for j in range(m): for k in range(check): if ((i + k) < n) and ((j + k) < m)..
문제 링크 https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 풀이 코드 a = input() b = input() cnt = 0 n = 0 while n
문제 링크 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 풀이 코드 n = int(input()) dp = [0 for _ in range(n+1)] if n
문제 링크 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 풀이 코드 n = int(input()) m = int(input()) graph = [[]*n for _ in range(n+1)] for _ in range(m): a,b = map(int,input().split()) graph[a].append(b) graph[b].append(a) cnt = 0 visited = [0]*(n+1) def dfs(start): global cnt vi..