본문 바로가기

전체 글

(50)
python 백준14502 연구소(BOJ14502) 문제링크 : https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 이문제는 아이디어 떠올리는 데만 2시간이 걸린것같다..아이디어를 떠올리는게 정말 어려웠다 혹시나 아이디어만 얻기위한 사람이 있을수 있어서 내가 풀었던 아이디어만 먼저 공유한다 문제해결 아이디어 1) 연구소 지도에서 벽 3개를 세운다 2) 벽을 세운 지도로 바이러스 확산 시뮬레이션을 해본다 3) 시뮬레이션 후 빈공간 갯수를 비교해본다 4) 1~3번 과정을 모든 경우의 수 만큼 반복 아래 코드도 처음..
python 백준2667 단지번호붙이기(BOJ2667) 문제링크 : https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net dfs를 공부하면서 나왔던 예시문제와 비슷하다 상하좌우를 dx, dy로 해서 풀면 쪼금 더 짧게도 가능할것같다 #지도크기 n = int(input()) #단지 집 수가 담길 리스트 house_count = [] #입력으로 받는 지도 리스트 input_map = [] for _ in range(n): #지도에 추가 input_map.append(list(map(int, input())))..
python 백준1193 분수찾기(BOJ1193) 문제링크 : https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 구현문제는 규칙을 뽑아내면 코드로 만드는것자체는 어렵지 않은것같다 그런데 처음 문제를 읽으면 '이걸 뭐 어쩌라고?' 생각이 들긴하는데 일단 예시를 손으로 쓰면서 규칙을 찾는 연습을 해야겠다 뭐 하다보면 늘지않을까? x = int(input()) row = 1 col = 1 jump = False v = 1 multiple = 1 while True: if x == v: break if jump : v += (4 * multiple) multiple += 1 jump = False col += 1 if x
python 백준1260 DFS와 BFS(BOJ1260) 문제링크 :https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net DFS와 BFS 방법만 알면 풀수있는 문제라서 그리 어렵지는 않았다. from collections import deque import sys input = sys.stdin.readline #정점n개, 간선m개, 시작점 v n, m, v = map(int, input().split()) graph = [[] for _ in range(n+1)] f..
python 백준11931 수 정렬하기 4(BOJ11931) 문제링크 :https://www.acmicpc.net/problem/11931 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 정렬하기인데 이런건 그냥 파이썬 기본 정렬라이브러리 쓰자 똑똑하신 분들이 만들어둔거라 이게 최고다 import sys input = sys.stdin.readline #숫자갯수입력 n = int(input()) array = [] #배열에 담기 for _ in range(n): array.append(int(input())) #정렬 array.sort(reverse = ..
python 백준1439 뒤집기(BOJ1439 ) 문제링크 : https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 문제자체는 간단해서 금방 풀었다 #0과 1로 이루어진 문자열 s = str(input()) count_one = 0 count_zero = 0 temp_char = s[0] if temp_char == "1": count_one += 1 else : count_zero += 1 for i in range(1,len(s)): if temp_char != s[i]: if s[i] == "..
python 백준1339 단어수학(BOJ1339) 문제링크 :https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 처음에 그냥 자리수별로 9부터 부여하면되는줄알고 풀었는데 답이 틀렸다고 나왔다. 가중치를 계산하는 생각을 하는데 시간이 오래걸렸다. 그리고 파이썬 딕셔너리를 문제풀때 처음 써봤는데 연습하기 딱 좋았다 #단어갯수 n = int(input()) alphabets = [] #알파벳 계산식 입력 for _ in range(n): alphabet = input() alphabets.appe..
python 백준1946 신입사원(BOJ1946 ) 문제링크 : https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 시간초과가 나서 sys를 임포트 했다 일단 문제자체를 이해하는것도 조금 어려웠는데 직접 써가면서 체크해보니깐 이해가 됐다 그리고 sort를 쓰면 생각보다 간단하게 풀리는 문제였는데 마지막에 통과점수를 바꿔주는걸 빼먹어서 조금 헤맸다 import sys input = sys.stdin.readline t = int(input()) for _ in range(t): ..