https://www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 정말 주어진대로 구현만 되는 문제였습니다. 좀 더 간단하게 풀 수 있을 거 같지만, 잠이 와서 그냥 하드코딩으로 했습니다..... 토네이도가 이동할 때 이동하는 방향에 따라 모래가 분리되는 비율이 달라지는 것만 주의하면 크게 어려울 것이 없습니다. 주어진 비율대로 모래를 구하고, 소수점은 그냥 버리면 됩니다. 날려간 모래는 해당 위치에 더해줍니다. 그리고 알파 위치..
https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 해당 문자열이 회문인지 아닌지, 그리고 한 글자를 뺐을 때 회문인지 판단하는 문제입니다. 단순히 한글자 씩 빼서 회문인지 검사하면, string의 최대 길이가 100,000 이하 이므로 최악의 경우 100,000 * 50,000 번의 검사를 해야합니다. (한 번에 2개 문자 검사 가정) 그러므로 투 포인터를 응용하여 해당 문자열이 회문인 경우 계속 진행하고, 서로 다른 문자가 나온 경우, check count를 1개 올려줍니다..
https://www.acmicpc.net/problem/10266 10266번: 시계 사진들 상근이는 보통의 시계와는 다른 독특한 시계 사진 두장이 있습니다. 시계는 n개의 동일한 길이와 목적을 가진 시계 바늘들을 가지고 있습니다. 애석하게도 시계의 숫자들은 희미해져 각 시계 바 www.acmicpc.net 시계의 침만 주어진 두 시계가 시간이 일치할 확률을 구하는 문제입니다. 주의할 점은 침이 일정한 규칙을 가지고 있지 않기 때문에, 1 2 3 4 와 4 2 1 3 은 possible을 가집니다. KMP알고리즘을 이용하여 간단히 구할 수 있습니다. (KMP라는 것을 생각하기 좀 어려웠다... 처음에는 각으로 계산하려했다) 우선, 입력값은 0
https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net 상어를 낚는 낚시왕은 다음과 같이 진행됩니다. 1. 낚시왕이 오른쪽으로 한 칸 이동한다. 2. 낚시왕이 있는 열에서 가장 가까운 상어를 잡는다. 3. 상어가 이동한다. 핵심은 상어가 이동함을 구현하는 것입니다. 특별한 알고리즘은 없지만, 최대 100 * 100 칸에 상어가 있을 수 있기 때문에 연산을 최소화하여야 합니다. 상어의 이동은 다음과 같습니다. 1. 상어는 마주보는 방..
https://www.acmicpc.net/problem/8111 8111번: 0과 1 각각의 테스트 케이스마다 N의 배수이면서, 구사과가 좋아하는 수를 아무거나 출력한다. 만약, 그러한 수가 없다면 BRAK을 출력한다. www.acmicpc.net 아이디어만 잘 떠올리면 어렵지 않은 문제였습니다. 조건은 다음과 같습니다. 0과 1로 이루어진 수이며 1으로 시작해야합니다. 그리고 자릿수는 100자리 이하인 수 중 입력으로 주어진 애들의 배수인 수를 구하는 것입니다. 예를 들어 17은 17 * 653= = 11101 을 만족합니다. 만족하는 수가 없다면 BRAK을 출력시킵니다 처음에 100자리면 최대 2^100 경우를 나눠야하나 싶었지만 어짜피 가능성 있는 녀석들만 계산해주면 되기 때문에 bfs를 사용하였..