전체 글
-
[백준] 1969 - DNA알고리즘 2023. 5. 13. 14:22
1. 문제 https://www.acmicpc.net/problem/1969 1969번: DNA DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오 www.acmicpc.net 2. 접근 1. 문제의 의도는 m개의 후보군들과의 Hamming Distance의 값들의 합이 가장 적은 S 하나를 구해라! 이거다 2. 생각해 보니까 m개의 후보군들을 하나씩 인덱스 순서대로 최빈값을 구해서 하나씩 ans ( string ) 에 더해주면 될것같았다 3. 주의할점은 최빈값이 같은 경우인데, 그 경우에는 사전순으로 넣어주면 된다..
-
[백준] 1748 - 수 이어 쓰기1알고리즘 2023. 5. 12. 17:43
1. 문제 https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 2. 접근 1. 이 문제의 결과값을 내는 방법은 많다.. 하지만 대부분 시간초과가 뜬다.. 2. 결국 규칙을 찾아야 한다 - 1자리 : 9 * 1 - 2자리 : 90 * 2 - 3자리 : 900 * 3 ... n = 120 이라면 1,2자리의 결과값들의 합에 (120 - 100 + 1) * 3 을 해주면 된다 3. 풀이 # 1748 실버 4 import sys input = sys.stdin.readline n = int(input()) length = len(str(n)) ans = 0 for i in r..
-
[백준] 13565 - 침투알고리즘 2023. 5. 12. 17:33
1. 문제 https://www.acmicpc.net/problem/13565 13565번: 침투 첫째 줄에는 격자의 크기를 나타내는 M (2 ≤ M ≤ 1,000) 과 N (2 ≤ N ≤ 1,000) 이 주어진다. M줄에 걸쳐서, N개의 0 또는 1 이 공백 없이 주어진다. 0은 전류가 잘 통하는 흰색, 1은 전류가 통하지 않 www.acmicpc.net 2. 접근 1. '이코테 - 음료수 얼려먹기' 에서 사용되는 dfs 기본 로직을 사용하면 풀 수 있을것 같다 2. 위에서 board[x][y] == 0 부분이 있다면, dfs를 실행한다 ( dfs를 실행한다 -> 전류를 통하게 한다 ) 3. 실행 후에 가장 아래 열에서 board[n-1][i] == 2 즉, 전류가 통했다면 flag == True로 변..
-
[백준] 1138 - 한 줄로 서기알고리즘 2023. 5. 10. 16:51
1. 문제 https://www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net 2. 접근 1. 생각을 해보면 순서대로 주워져있기 때문에, order를 맨 뒤부터 생각해보면 된다 2. 1~n 이니까 n 보다 큰값은 없지? 그러니까 0일수밖에 없다 3. 그래서 n-1의 값이 0이면 [n-1, n], 1이면 [n, n-1], 4. n-2의 값이 0이면, [n-2,n-1, n] or [n-2,n, n-1], 1이면 [n-1,n-2, n] or [n,n-2, n-1..
-
[백준] 1205 - 등수 구하기알고리즘 2023. 5. 10. 16:45
1. 문제 https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net 2. 접근 1. 처음에는 태수의 성적을 넣을 수 있는 공간에 scores에 insert로 넣고, 비오름차순으로 정렬되어 있으니까 2중 for문을 통해서 현재 점수부터 그 뒤의 수들을 비교해서 태수 점수의 index를 통해서 결과값을 구할라 했는데, 태수랑 scores에 같은 값이 있다면 결과값이 틀려진다 ( 테스트 코드에서 -1로 나오는 예제를 돌리면 제가 ..
-
[백준] 3184 - 양알고리즘 2023. 5. 10. 16:40
1. 문제 https://www.acmicpc.net/problem/3184 3184번: 양 첫 줄에는 두 정수 R과 C가 주어지며(3 ≤ R, C ≤ 250), 각 수는 마당의 행과 열의 수를 의미한다. 다음 R개의 줄은 C개의 글자를 가진다. 이들은 마당의 구조(울타리, 양, 늑대의 위치)를 의미한다. www.acmicpc.net 2. 접근 1. 울타리로 가둬져있는 각각의 공간마다 wolf, sheep 수를 구해준다. 2. 한 지점부터 dfs로 상하좌우로 재귀함수를 실행한다 3. dfs 의 x,y 지점이 True라면 4번으로 진행한다 4. 각 영역마다의 wolf >= sheep 이면 w += wolf , wolf < sheep 이면 s += sheep를 해준다 3. 풀이 # 3184 실버1 impor..
-
[백준] 1051 - 숫자 정사각형알고리즘 2023. 5. 8. 16:53
1. 문제 https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 2. 접근 1. 처음에는 모든 지점을 지나면서 가로, 세로, 대각선을 체크할 수 있는 각 함수를 만들어서 처리하려고 했다. ( 중복되는 코드도 길어지고, 오히려 복잡해서 틀렸다 ) 2. min(n,m) 을 하는 이유는 정사각형의 특징 덕에 얻을 수 있던 힌트다 ( 4변의 길이가 같다! ) 3. 그래서 k 만큼 벌어진거에 대해서 n,m을 벗어나지 않고 각 모서리가 같으면 배열(ans)에 ..