본문 바로가기
반응형

Python51

[백준] 18352번 : 특정 거리의 도시 찾기 출처 : 이것이 취업을 위한 코딩테스트다 with python 문제 : https://www.acmicpc.net/problem/18352 유형 : 그래프 이론, 그래프 탐색, 너비 우선 탐색, 다익스트라 1. 문제 예시 4 4 2 1 1 2 1 3 2 3 2 4 예시 출력 4 2. 풀이 ## 백준 18352 : 특정 거리의 도시 찾기 # 이것이 취업을 위한 코딩테스트다 with python import sys from collections import deque input = sys.stdin.readline n,m,k,x = map(int, input().split()) graph = [[] for _ in range(n+1)] # 데이터를 처음 0번째부터 넣지 않고 1번쨰부터 넣기 떄문에 for _.. 2022. 2. 9.
[백준] 1439번 : 뒤집기 출처 : 이것이 취업을 위한 코딩테스트다 p.313 문제 출처 : https://www.acmicpc.net/problem/1439 참고 : https://codingpractices.tistory.com/72 유형 : 그리디, 정렬 1. 문제 예시 11001100110011000001 예시 출력 4 2. 풀이1 data = input() count0 = 0 # 전부 0으로 바꾸는 경우 count1 = 0 # 전부 1로 바꾸는 경우 if data[0] == '1': count0 += 1 else: count1 += 1 for i in range(len(data)-1): if data[i] != data[i+1]: if data[i+1] == '1': count0 += 1 else: count1 += 1 .. 2022. 2. 9.
[이취코] 곱하기 혹은 더하기 출처 : 이것이 취업을 위한 코딩테스트다 with python 유형 : 그리디 1. 문제 각 자리가 숫자(0부터 9)로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하여 숫자 사이에 '*' 혹은 '+' 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. 단, 일반적인 계산방식과 달리 모든 연산은 왼쪽에서부터 순서대로 이뤄진다고 가정. 예시 02894 예시 출력 576 2. 내 코드 ## 곱하기 혹은 더하기 # 내 코드 str = input() str = list(str) opr = [] for i in range(len(str)-1): if (str[i] == '0' or str[i+1] == '0'): opr.append('+') .. 2022. 2. 9.
[이취코] 모험가 길드 출처 : 이것이 취업을 위한 코딩테스트다 with python p. 311 참고 : https://ssssol.tistory.com/49 (여기서 반례를 찾았다) 유형 : 그리디 1. 문제 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여해야 여행을 떠날 수 있도록 규정했다. 첫째 줄에 모험가의 수 N이 주어지고, 둘 째줄에 각 모험가의 공포도의 값을 N 이하의 자연수로 주어지면, 각 자연수는 공백으로 구분한다. 단, 몇 명의 모험가는 마을에 그대로 남아 있어도 되기 떄문에, 모든 모험가를 특정한 그룹에 넣을 필요는 없다. 예시 5 2 3 1 2 2 예시 출력 2 2. 내 코드 n = int(input()) group = list(map(int, input().split())) gr.. 2022. 2. 9.
[백준] 1931번 : 회의실 배정 유형 : 정렬, 그리디 1. 문제 예제 11 1 4 3 5 0 6 5 7 3 8 5 9 6 10 8 11 8 12 2 13 12 14 예제 출력 4 # (1,4), (5,7), (8,11), (12,14) 2. 코드 N = int(input()) data = [] for _ in range(N): data.append(list(map(int, input().split()))) data.sort(key = lambda x:(x[1],x[0])) cnt = 1 x = data[0][1] # 끝 for i in range(1,N): # 첫 번째 회의를 두 번째 회의 일정부터 비교 if x 2022. 2. 9.
[이취코] 1이 될 때까지 출처 : 이것이 취업을 위한 코딩테스트다 with python p.99 유형 : 그리디 1. 문제 (자세한 건 책을 참고) 어떠한 수가 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고 한다. 단, 두 번째 연산은 N이 K로 나누어떨어질 때만 선택할 수 있다. 1) N에서 1을 뺀다. 2) N을 K로 나눈다. 첫째 줄에 N이 될 때까지 1번 혹은 2번의 과정을 수행하는 횟수의 최솟값을 출력한다. 예시 25 5 예시 출력 2 2. 내 코드 ## 내 코드 N, K = map(int, input().split()) cnt = 0 while N > 1: if N % K == 0: N = N//K else: N -= 1 cnt += 1 print(cnt) 처음에 별 생각없이 N을 K로.. 2022. 2. 8.
반응형