목록Python (169)
홍우진의 개발 일기장
문제 링크 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..
문제 링크 https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 풀이 코드 import sys n, m = map(int, sys.stdin.readline().split()) site = {} for _ in range(n): id, pw = map(str, sys.stdin.readline().split()) site[id] = pw for _ in range(m): address = str(sys.stdin.rea..
문제 링크 https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 풀이 코드 n = int(input()) dic = {} for i in range(n): a = input() if a not in dic: dic[a] = 1 else: dic[a] += 1 list = [] num = max(dic.values()) for i in dic: if num == dic[i]: list.append(i) list.sort() print(list[..
우연히 옛날에 내가 풀었던 문제를 다시 보게 되었는데 풀이 방법이 기억이 하나도 나지 않았다. 애초에 이 문제를 풀었었던 기억조차 나지 않았다. 심지어 내가 블로그 포스팅한 기록을 봐도 기억이 나지 않았다. 그래서 나는 포스팅 방식을 공부에 도움이 더 되는 방향으로 바꾸기로 하였다. 문제 설명과 답만 포스팅하는 방식에서 간단한 문제 링크와 풀이 코드, 코드 해석을 포스팅하는 방식으로 바꾸기로 하였다. 복습하는데도 훨씬 도움이 되고 답만 적어놓는 방식보다 남에게 설명하듯이 기재하며 내 생각을 다시 정리할 수 있을 것 같다. 사실 다른 블로거들은 대부분 이 방식을 사용하고 있었지만 나만 몰랐던 것 같다 😑 문제 링크 https://www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 ..