반응형

Algorithm/백준 209

[백준 알고리즘] 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

[백준 알고리즘] 2609번: 최대공약수와 최소공배수 (Python)

https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 소스코드 풀이 ★ 최대공약수는 유클리드 호제법을 통해 구해주고, 최소공배수는 두 자연수의 곱을 최대공약수로 나눠서 구해줍니다 ! ★ 최대공약수 구하는 방법 참고 ! https://hyul-mode.tistory.com/entry/%EB%B0%B1%EC%A4%80-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-1934%EB%B2%88-%EC%B5%9C%EC%86%8C%EA%B3%B5%EB%B0%B0%EC%88%98-Python [백준 알고리즘] ..

Algorithm/백준 2023.06.13

[백준 알고리즘] 1934번: 최소공배수 (Python)

https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 소스코드 풀이 ★ 최소공배수는 주어진 두 자연수의 곱을 두 자연수의 최대공약수로 나눈 값과 같습니다. ex) 두 자연수 a,b. 두 수의 최대공약수 r. 최소공배수 => a*b // r ★ 최대공약수를 구하기 위해 유클리드 호제법 알고리즘을 사용해줍니다. 유클리드 호제법은 a와 b의 나머지를 구하는데, 나머지가 0이 되었을 때 두 자연수를 나누는 수가 최대공약수가 됩니다 ! e..

Algorithm/백준 2023.06.13
반응형