반응형

Algorithm/백준 212

[백준 알고리즘] 15904번: UCPC는 무엇의 약자일까? (Python)

https://www.acmicpc.net/problem/15904 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 소스코드 풀이 ★ 입력받은 문자열을 UCPC로 만들기 위해서 축약을 진행해야 하는데, 축약을 했을 때 UCCPCC or UCPPPC와 같이 해당 문자열이 반복될 수도 있습니다. 그렇기에 그러한 부분들을 고려하여 풀이를 진행해야 합니다 ! ★ 입력받은 문자열을 읽으면서 해당 글자가 ucpc라는 리스트 안에 들어있는 글자들과 같은지 비교해줍니다. 이 때, ucpc 리스트의 첫번..

Algorithm/백준 2023.06.20

[백준 알고리즘] 18310번: 안테나 (Python)

https://www.acmicpc.net/problem/18310 18310번: 안테나 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다. www.acmicpc.net 소스코드 풀이 ★ 집들간의 거리를 알기 위해 주어진 집의 위치를 정렬했습니다. 일직선상에서 중앙에 가까운 값일수록 다른 점들의 거리가 가까워지는 것을 활용하여 문제를 풀었는데, n이 홀수일 때와 짝수일 때를 나눠서 결과값을 출력했는데, 홀수인 경우 인덱스가 0부터 시작하기에 n // 2의 인덱스를 가지고 있는 값을 출력하였고, 짝수인 경우엔 n-1 // 2의 값을 출력하였습니다 !

Algorithm/백준 2023.06.20

[백준 알고리즘] 1969번: DNA (Python)

https://www.acmicpc.net/problem/1969 1969번: DNA DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오 www.acmicpc.net 소스코드 풀이 ★ 예시를 기준으로 봤을 때 Hamming Distance의 합이 가장 작은 DNA는 주어진 DNA들의 인덱스 값의 갯수가 가장 많은 알파벳의 조합인 것을 알 수 있습니다. ex) TATGATAC TAAGCTAC AAAGATCC TGAGATAC TAAGATGT 0번째 자리 = > T, 1번째 => A, 2번째 = > A, 3번째 => G,..

Algorithm/백준 2023.06.19

[백준 알고리즘] 1343번: 폴리오미노 (Python)

https://www.acmicpc.net/problem/1343 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 소스코드 풀이 ★ 파이썬의 replace함수는 특정 문자열을 원하는 문자열로 대체할 수 있습니다. 이 문제에서는 'XXXX"를 'AAAA'로, 'XX"를 'BB"로 대체하여 문자열을 갱신하였습니다 ! ★ 이때, 갱신한 문자열 a에 'X'가 들어있다면 덮을 수 없는 보드판이기 때문에 -1을 출력하고, 아닐 시 보드판을 그대로 출력해줍니다.

Algorithm/백준 2023.06.19

[백준 알고리즘] 2847번: 게임을 만든 동준이 (python)

https://www.acmicpc.net/problem/2847 2847번: 게임을 만든 동준이 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어 www.acmicpc.net 소스코드 풀이 ★ 레벨이 낮은 순서대로 그 뒷 레벨의 점수와 비교하여 점수를 감소시키는 것이 아닌, 가장 뒤에서부터 점수를 감소시켜 나가는 방식으로 풀이를 진행해야 합니다 ! ★ 해당 레벨의 점수가 앞 레벨의 점수보다 작거나 같다면, 앞 레벨의 점수를 줄여줘야 하기 때문에 (앞 레벨 점수) - (해당 레벨 점수) + 1을 통해 감소 횟수를 체크해줍니다. ★ 그 후에는 앞 레벨의 점수를 해당 레벨..

Algorithm/백준 2023.06.19

[백준 알고리즘] 13458번: 시험 감독 (Python)

https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 소스코드 풀이 ★ 시험장의 응시생을 총감독이 감시할 수 있는 수인 b로 커버가 된다면 ans는 1만 증가하게 됩니다. ★ 총감독으로 커버가 되지 않는 경우 부감독을 최소한으로 사용해야 하는데, 반복문을 돌리면 입력값이 백만까지 이기에 시간초과가 뜨게 됩니다. ★ 총감독으로 감시할 수 있는 수를 제외한 학생 k를 c로 나눈 나머지가 0이라면 ..

Algorithm/백준 2023.06.14

[백준 알고리즘] 2501번: 약수 구하기 (Python)

https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 소스코드 풀이 ★ n의 약수인 수들을 리스트 'a'에 저장합니다. ★ enumerate를 사용하여 리스트 'a'에 존재하는 값들을 '인덱스', '값' 형태로 가져옵니다 ! 가져오면서 인덱스 번호가 k-1번째(인덱스는 0부터 시작)와 같으면 그 인덱스를 가직고 있는 값을 출력합니다. ★만약 k번째 약수가 없으면 0을 출력해야 하기 때문에 for문을 돌면서 break문에 걸리지 않고 반복문을 빠져나온다면 약수가 없는 것이기에 0을 출력해줍니다 :)

Algorithm/백준 2023.06.14

[백준 알고리즘] 2576번: 홀수 (Python)

https://www.acmicpc.net/problem/2576 2576번: 홀수 7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지 www.acmicpc.net 소스코드 풀이 ★ 입력받은 수들을 리스트에 넣고, 수들을 10으로 나눴을 때 일의 자리가 홀수일 경우 hol이라는 리스트에 넣습니다. 이때 10으로 나누는 이유는 문제에서 주어지는 자연수는 100보다 작기 때문입니다 ! ★ 만약 hol 리스트가 비어있다면 홀수가 없는 것이기에 -1을 출력하고, 값이 있을 경우 sum함수와 min함수를 사용하여 합과 최솟값을 출력해줍니다 !

Algorithm/백준 2023.06.14
반응형