- Today
- Yesterday
- Total
목록Algorithm/Baekjoon (162)
메이쁘
https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 안녕하세요. DFS 문제 중 하나로, 난이도는 어렵지 않습니다. 일반적인 DFS 방식 과 적색과 녹색이 같은 경우(R = G) 의 DFS 방식 두 가지 DFS 방식을 동시에 돌리고, 각각의 결과를 얻어내면 됩니다. DFS(깊이우선탐색) 를 통해 상하좌우 붙어있는 색상 중 선택한 하나의 색상과 같다면, 같은 하나의 구역으로 만듭니다. 적록색약 환자면, 적색일 때 녹색도 똑같이 보고 (반대로 ..
https://www.acmicpc.net/problem/6987 6987번: 월드컵 www.acmicpc.net 안녕하세요. 이 문제는 백트래킹 + 완전탐색 + 브루트 포스 가 합쳐진 난이도가 있는 문제입니다. 처음에 간단하게 조건을 하나하나 추가해가면서 풀다보니 계속 틀렸는데요.. http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1114&sca=4030 JUNGOL www.jungol.co.kr 정골가서 왜틀렸는지 테스트케이스를 보려고 몇 번이고 돌리면서 수정했었지만 결국 처음 코딩했던 알고리즘을 버리고 백트래킹 측면에서 좀 더 단순하게 생각했습니다. (조금 다른 사람 해설을 참고했습니다..!) 핵심은 - 총 6개의 팀이 있으며, 한 팀당 무조..
https://www.acmicpc.net/problem/2023 2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수� www.acmicpc.net 안녕하세요. 이 문제는 백트래킹 + 소수 문제입니다. 소수를 구하기 위해 에라토스테네스의 체 를 이용했어요. 에라토스테네스의 체 가 궁금하면 아래 포스팅을 참고해주세요. https://maivve.tistory.com/65 (JAVA) 백준 2960번 : 에라토스체네스의 체 https://www.acmicpc.net/problem/2960 2960번: 에라토스테네스의 체 문제 에라토스..
https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 안녕하세요. 백트래킹 문제 중 기본 난이도 입니다. 하지만 백트래킹을 잘못 사용해서 전체 순열의 경우의 수를 출력하지 못하고 틀렸었습니다. 특별히 매커니즘이나 별도 유의사항이 없기 때문에 따로 작성하지 않겠습니다. 이 문제를 해결하는 방법은 아래 소스코드를 참고하시면 됩니다. 감사합니다. 소스코드
https://www.acmicpc.net/problem/4354 4354번: 문자열 제곱 알파벳 소문자로 이루어진 두 문자열 a와 b가 주어졌을 때, a*b는 두 문자열을 이어붙이는 것을 뜻한다. 예를 들어, a="abc", b="def"일 때, a*b="abcdef"이다. 이러한 이어 붙이는 것을 곱셈으로 생각한다� www.acmicpc.net 안녕하세요. 이 문제도 KMP 문제로서, 문자열의 접두사와 접미사의 개수를 활용하는 문제입니다. 필자도 조금 어려워서 고민고민하다 해설을 참고했습니다...ㅠㅠ 결론은 그거입니다. len : 문자열의 전체 길이 pi 배열 : 0 ~ index까지의 부분 문자열의 접두사와 접미사가 같은 그 문자열의 최대 길이 가 있을 때, 제곱 n = len / (len - pi..
https://www.acmicpc.net/problem/1356 1356번: 유진수 첫째 줄에 수 N이 주어진다. 이 수는 2,147,483,647보다작거나 같은 자연수이다. www.acmicpc.net 안녕하세요. 이 문제는 문자열 + 수학 문제이다. int 최대치까지 가능한 자연수를 입력으로 받고, 이 수를 두 부분으로 나눴을 때, 앞 부분의 모든 자리의 곱 과 뒤 부분의 모든 자리의 곱 이 같은지 비교하는 문제이다. 따지면 여러 방법이 있는데 필자의 방법을 포스팅해보겠다. 매커니즘 1. int 배열 A와 B를 입력받은 문자열 크기(len)만큼 선언한다. (문자열은 input 이라고 하자.) 2. for문으로 (1 ~ len-2) 까지 탐색하며, index는 i라고 할 때 A[i] = A[i - 1..
https://www.acmicpc.net/problem/1013 1013번: Contact 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어진다. 문자열 길이는 (1 ≤ www.acmicpc.net 안녕하세요. 이 문제는 단순 문자열 문제가 아니라 정규표현식 문제이다. 자바의 정규표현식 기능을 사용해도 되긴 하지만, 자바 정규표현식 기능을 사용하는 것보다 오토마타 전이 그래프(DFA라고 하죠) 를 직접 그려보는 것 + 오토마타 상태 그래프를 바탕으로 알고리즘을 짜서 코딩하는 것 이 훨씬 빠르고 도움이 된다고 생각되서 이렇게 수행했다. 처음에는 단순히 하나씩 계산하려고 애먹었지만, ..
https://www.acmicpc.net/problem/11944 11944번: NN 첫 번째 줄에는 N, M이 주어진다. (1 ≤ N, M ≤ 2016) www.acmicpc.net 안녕하세요. 문자열 문제인데, 쉬운줄 알고 알고리즘 짠 후 테스트케이스 몇 개 돌려보니 생각보다 몇 개 고려할 것들이 있었다. 고려할 사항은 - N의 문자 개수 * N개 > M 인 경우, 앞에 M개까지만 출력해야 한다. 그렇기 때문에, N의 문자 개수 * M / N개 까지 문자열을 만든 후, 0~M까지 subString 한다. ex) 123 31 output : 1231231231231231231231231231231 (31개) - N의 문자 개수 * N개 만큼 개수 맞춰서 출력하기..? 음.. 별 거 없었구나.. 그렇기..
https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 쉽다. 팰린드롬 문제이지만 다른 팰린드롬 문제들과는 다르게 팰린드롬 알고리즘을 사용하지 않고 정공법(양 끝에서부터 탐색해서 같은지 비교) 만으로 해결했다. 더이상의 자세한 설명은 생략한다. 끗 소스코드
https://www.acmicpc.net/problem/1305 1305번: 광고 첫째 줄에 광고판의 크기 L이 주어지고, 둘째 줄에 현재 광고판에 보이는 문자열이 주어진다. L은 백만보다 작거나 같은 자연수이다. www.acmicpc.net 이 문제도 문자열 탐색 알고리즘인 KMP 알고리즘을 사용한다. 포인트 몇 가지만 알아보자. 1) 광고 문자열은 무한히 반복한다. 2) 무한히 반복하는 문자열 중 일부분만 우리가 확인한다. 3) 그 중, 광고가 될 수 있는 문자열(무한히 반복하는 문자열)이 가능한 경우 중 가장 짧은 문자열의 길이를 구한다. 그럼, 이를 알기 위에선 어떻게하냐? 문자열에서 접두사 - 접미사가 같은 문자열의 최대 길이를 구하면 된다. 접두사와 접미사가 같으면 뭐가되었든 광고 문자열의 ..