반응형

Algorithm/백준 212

[백준 알고리즘] 3111번: 검열 (Python)

https://www.acmicpc.net/problem/3111 3111번: 검열 첫째 줄에 단어 A가, 둘째 줄에 텍스트 T가 주어진다. A와 T는 알파벳 소문자로만 이루어져 있고, A는 최대 25자, T는 최대 300,000자이다. www.acmicpc.net 소스코드 풀이 ★ 해당 문제를 푸시기 전에 다음 문제를 먼저 풀어보는 것을 추천드립니다 ! 스택 안에서 주어진 단어를 찾는 경우, 단어의 길이만큼 스택 위에서부터 찾는 방법을 익힐 수 있기 때문입니다 :) https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1..

Algorithm/백준 2023.08.14

[백준 알고리즘] 16496번: 큰 수 만들기 (Python)

https://www.acmicpc.net/problem/16496 16496번: 큰 수 만들기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 리스트에 포함된 수가 주어진다. 수는 공백으로 구분되어져 있고, 1,000,000,000보다 작거나 같은 음이 아닌 정수 이다. 0을 제외한 나 www.acmicpc.net 소스코드 풀이 ★ 핵심은 입력 받은 리스트의 원소들을 문자열 형태로 바꾸고(사전 순으로 크기를 비교하기 위헤), 대소 비교를 통해 정렬해주는 것입니다 ! ex) [3,30,34,5,9]를 문자열 형태로 바꾼 뒤, lambda x:x*3을 기준으로 내림차순 정렬하게 되면, [999,555,343434,333,303030] => [9,5,34,3,30] 형태로 정렬됩..

Algorithm/백준 2023.08.11

[백준 알고리즘] 9576번: 책 나눠주기 (Python)

https://www.acmicpc.net/problem/9576 9576번: 책 나눠주기 백준이는 방 청소를 하면서 필요 없는 전공 서적을 사람들에게 나눠주려고 한다. 나눠줄 책을 모아보니 총 N권이었다. 책이 너무 많기 때문에 백준이는 책을 구분하기 위해 각각 1부터 N까지의 www.acmicpc.net 소스코드 풀이 ★ 주어진 구간 i,k중 k를 기준으로 정렬하는 이유는 책을 최대한 많은 사람들에게 줘야 하며 범위가 더 크기 때문에 책을 가져갈 수 있는 범위 또한 넓기 때문입니다. ★ 이때 오름차순 정렬을 하는 이유는 예를 들어 ex) n = 3, m = 3, [1,2], [1,3], [1,2] 와 같이 책을 가져갈 수 있는 구간이 주어진다면 내림차순 정렬을 하게 될 경우 [1,3]은 1번 책, [..

Algorithm/백준 2023.08.11

[백준 알고리즘] 17952번: 과제는 끝나지 않아! (Python)

https://www.acmicpc.net/problem/17952 17952번: 과제는 끝나지 않아! 성애는 이번 학기에 전공을 정말 많이 듣는다. 이로 인해 거의 매일을 과제를 하면서 보내고 있다. 그런데도 과제가 줄어들 기미가 보이지 않는데, 바로 분단위로 과제가 추가되고 있기 때문이 www.acmicpc.net 소스코드 풀이 ★ 점수를 저장하는 스택과, 시간을 저장하는 스택을 따로 만들어줬습니다. ★ 과제가 없는 경우에는 과제를 할 수 있기 때문에 시간 스택의 맨 위에 있는 시간을 -1 해줍니다. 이 때 시간의 값이 1이 되면 과제가 끝났다는 것이기에 점수와 시간을 각각의 스택에서 제거해주고, 점수는 출력 값 변수에 + 해줍니다. ★ 과제가 들어오는 경우는 해당 과제를 먼저 해줘야 하기 때문에 스..

Algorithm/백준 2023.08.10

[백준 알고리즘] 15903번: 카드 합체 놀이 (Python)

https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 소스코드 풀이 ★ 카드들의 합을 최소로 만들기 위해서는 가장 작은 수 두개를 더한 뒤, 그 수를 덮어쓰는 방법을 써야 합니다 ! ★ 가장 작은 두 수를 찾기 위해 놀이를 진행할 때마다 오름차순 정렬을 해줍니다. ★ 그 후 합을 변수 res에 저장하고, 각각의 카드에 덮어 써주면 됩니다 :)

Algorithm/백준 2023.08.10

[백준 알고리즘] 2437번: 저울 (Python)

https://www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net 소스코드 풀이 ★ 처음 생각했던 방식은 최솟값을 구해야 하기에 입력 받은 저울 추를 오름차순 정렬하고, 저울추로 구할 수 있는 모든 경우의 수를 구한 뒤, 구하지 못하는 값들 중 최솟값을 출력하는 방식이었습니다 ! ex) [A,B,C] => A, A+B, A+C, B+C, A+B+C 하지만 당연하게도 시간초과가 발생했고, 입력 받은 예제를 토대로 위와 같은 방식을 출력해보니 다음과 같은 결과를 얻을 수 있었..

Algorithm/백준 2023.08.09

[백준 알고리즘] 1263번: 시간 관리 (Python)

https://www.acmicpc.net/problem/1263 1263번: 시간 관리 진영이는 캠프 조교를 온 후 효율적으로 시간 관리를 해야 한다는 것을 깨달았다. 진영이는 하루에 해야 할 일이 총 N개가 있고 이 일들을 편하게 1번부터 N번까지 차례대로 번호를 붙였다. 진영 www.acmicpc.net 소스코드 풀이 ★ 값을 출력할 때 start변수에 -1을 해주는 이유는 반복문에서 일을 시작하는 시각인 start가 +1이 되어 나오기 때문입니다. 주어진 예제를 예로들면, 4 3 5 8 14 5 20 1 16 입력받은 값의 두번째 수를 기준으로 오름차순 정렬하면 [3,5], [8,14], [1,16], [5,20] 과 같이 나오게 됩니다. 이 상태에서 반복문을 실행시키면 time 변수는 0 -> ..

Algorithm/백준 2023.08.09
반응형