백준 12

[파이썬]-백준(BOJ)10809 _ 알파벳 찾기

# https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 해결방안 문자열을 받고 딕셔너리에 넣어준다 setdefault 함수는 기존에 있던 값으로 그대로 값을 사용한다 string.ascil_lowercase 는 소문자 알파벳 배열에 있는 내장 값이다 # https://www.acmicpc.net/problem/10809 # 알파벳 찾기 import string def solution(strings): answer = '' # 조인할 문..

백준 2021.07.26

[파이썬]-백준(BOJ)12852 _ 1로만들기 ver 2

https://www.acmicpc.net/problem/12852 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 해설 정답을 위한 배열을 만들어 주고 인덱스를 돌면서 1+, 2*, 3* 인덱스에 자기 연산 더하기 1을 저장해주는데 이미 들어가 있는 값보다 작을 경우에만 해준다. 그리고 경로배열은 점화식으로 저장해준다 처음에 무식하게 윗줄부터 3 나누고 2나누고 1 빼서 구하려고했지만 불가능했다. 그다음 Deep Copy 를 이용해 경로들을 저장해 주었지만 소용이 없었다. Deepcopy는 새로운배열을할당해 시간이 오래 걸리고 얕은 복사를 하니 다른경로들도 다 저장되는 오류가 생겼다 12345678910111213..

백준/DP 2021.06.07

[파이썬]-백준(BOJ) 10815번_ 숫자카드

www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 해설 이분 탐색으로 풀어야 합니다!! 선형 탐색으로 접근해서 시간 초과가 난후, index 함수로 인한 시간초과후 이분탐색으로 풀었습니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172#..

백준 2021.05.03

[파이썬]-백준(BOJ) 1092 _ 배

www.acmicpc.net/problem/1092 1092번: 배 첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 각 크레인의 무게 제한이 주어진다. 이 값은 1,000,000보다 작거나 같다. 셋째 줄에는 박스의 수 M이 주어진다. M은 10,000보 www.acmicpc.net 해설 최대힙으로 풀어볼려고 했지만 실패해서, 구글링을 참고한결과 그냥 포문을 다 돌려주면 되었따. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788..

백준 2021.04.29

[파이썬]-백준(BOJ) 11000 _ 강의실 배정

www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (1 ≤ Si < Ti ≤ 109) www.acmicpc.net 해설 heapq를 사용해서 해결한다. 일단 받고 정렬한뒤, 끝값을 힙에 넣어줘서 새로드러오는 값이 크거나 같다면 바꿔고 최종적으로 길이를 출력해준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 # 강의실 배정 # 시간 제한 메..

백준 2021.04.29

[파이썬]-백준(BOJ) 2075_N번째 큰수

www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 해설 처음에 풀이가 안나서 참고해서 최대 힙으로 풀고자 했으나, 메모리 초과가 났다. 결국 몇시간 머리를 쥐어짜다가. 정답을 참고하였는데 상위 N개만 유지해주는 코드를 만드는 것이였다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465# N번째 큰수# ..

백준/정렬 2021.04.29

[파이썬]-백준(BOJ)1302 _ 베스트셀러

www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 해설 딕셔너리를 만들어 준 다음 최대값을 가지고오고, 최대값인 배열별로 정렬을 해준뒤, 반환하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 6..

백준/정렬 2021.04.28

[파이썬]-백준(BOJ) 12865_평범한 배낭

www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 해설 가치 배열을 만든다. 각 무게별로 계속 돌아주면서 물건 (무게,가치)를 넣어주면서 최대값으로 경신을 해준다 0(배낭무게) 1 2 3 4 5 6 7 0.0 (더미) 0 0 0 0 0 0 0 6.13 0 0 0 0 0 13 13 4.8 0 0 0 8 8 13 13 3.6 0 0 6 8 8 13 14 5.12 0 0 6 8 12 13 14 123..

백준/DP 2021.04.26

[파이썬]-백준(BOJ)1753 _ 최단경로

문제 방향그래프가 주어지면 주어진 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 프로그램을 작성하시오. 단, 모든 간선의 가중치는 10 이하의 자연수이다. 입력 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. 셋째 줄부터 E개의 줄에 걸쳐 각 간선을 나타내는 세 개의 정수 (u, v, w)가 순서대로 주어진다. 이는 u에서 v로 가는 가중치 w인 간선이 존재한다는 뜻이다. u와 v는 서로 다르며 w는 10 이하의 자연수이다. 서로 다른 두 정점 사이에 여러 개의 간선이 존재할 수도 있음에 유의한다. 출력 첫째 줄부터 V개의 줄..

백준/최단경로 2021.04.26

[파이썬]-백준(BOJ) 1719_택배

문제 명우기업은 2008년부터 택배 사업을 새로이 시작하기로 하였다. 우선 택배 화물을 모아서 처리하는 집하장을 몇 개 마련했지만, 택배 화물이 각 집하장들 사이를 오갈 때 어떤 경로를 거쳐야 하는지 결정하지 못했다. 어떤 경로를 거칠지 정해서, 이를 경로표로 정리하는 것이 여러분이 할 일이다. 예시된 그래프에서 굵게 표시된 1, 2, 3, 4, 5, 6은 집하장을 나타낸다. 정점간의 간선은 두 집하장간에 화물 이동이 가능함을 나타내며, 가중치는 이동에 걸리는 시간이다. 이로부터 얻어내야 하는 경로표는 다음과 같다. 경로표는 한 집하장에서 다른 집하장으로 최단경로로 화물을 이동시키기 위해 가장 먼저 거쳐야 하는 집하장을 나타낸 것이다. 예를 들어 4행 5열의 6은 4번 집하장에서 5번 집하장으로 최단 경..

백준/최단경로 2021.04.23