Loading...

ABC 339 D번 복기 - 4차원 visited 배열 BFS 백트래킹

1. 문제 D - Synchronized Players (atcoder.jp) D - Synchronized Players AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp 2. 풀이 하라는대로 구현하면 된다 두 플레이어 P가 움직이는데 두 플레이어는 같은 방향으로 움직이게 되어있다. 또한 한 플레이어가 해당 방향으로 움직일수 없더라도 다른 플레이어가 움직일 수 있다면 움직이는 경우로 생각한다 그래서 먼저 두 플레이어의 위치를 찾고 BFS를 수행하는 전형적인 형태 n = int(stdin.readline()) maps = ..

생각해서 브루트포스 탐색 범위를 줄여야하는 경우1 (장난감 강아지)

1. 문제 31287번: 장난감 강아지 (acmicpc.net) 31287번: 장난감 강아지 U, D, L, R로 이루어진 길이 $N$의 문자열 $S$가 주어진다. 문자열 $S$를 $K$번 이어 붙인 문자열을 $T$라고 하자. 장난감 강아지 타카하시는 2차원 좌표평면의 원점에서 시작해서 $T$에 적힌 문자를 하 www.acmicpc.net 2. 풀이 의외로 생각을 요구해서 배울 점이 있는 문제 위,아래,왼쪽,오른쪽으로 강아지가 움직이는데.. 문제는 길이 2000인 문자열 S를 최대 $10^{9}$번 반복시켜서 2000*1000000000번 강아지가 움직일 수 있다 이때 원점에서 움직이는데 다시 원점으로 돌아올 수 있는지 확인해야하는 문제 2000*1000000000번을 1초안에 다 해볼수는 없을 것 근데..

경우를 나눠서 생각하면 최적해로 도달하는 경이로운 그리디 알고리즘(전구와 스위치, 전구 상태 바꾸기)

1. 문제 2138번: 전구와 스위치 (acmicpc.net) 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 www.acmicpc.net 2. 풀이 핵심 해법은 0번 전구를 누를 수 없다고 할 때, 1번부터 n-1번까지 눌러봐서 원하는 상태에 도달할 수 있는지 체크하고 다음은 0번 전구를 반드시 누를때, 1번부터 n-1번까지 눌러봐서 원하는 상태에 도달할 수 있는지 체크해본다. 둘다 불가능하면 바꿀수 없는 것일테고, 하나라도 가능하다면 최소로 누른 횟수가 정답이 될 것이다. ------------------..

컴퓨터로 미분하는 방법(문자열 파싱에서 항상 실수하는 부분 복기)

1. 문제 15725번: 다항함수의 미분 (acmicpc.net) 15725번: 다항함수의 미분 첫째 줄에 최대 일차 일변수 다항식이 주어진다. 항의 개수는 최대 2개이고, 변수는 항상 x로 주어지며, 각 항은 공백 문자로 구분되지 않는다. 주어지는 계수와 상수의 절댓값은 10,000을 넘지 않 www.acmicpc.net 2. 풀이 그냥 간단하게 일차함수를 미분하면 된다 input으로 일차함수 형태가 들어오는데, 일차함수 미분은 결국 x의 계수니까, x의 계수를 파싱해서 출력하면 된다 말은 간단하지만... x의 계수를 컴퓨터가 찾기는 쉽지가 않지 여러가지 경우의 수를 생각해보자. 크게는 일차항이 없는 경우와 일차항이 있는 경우로 나뉠 것이다. 일차항이 없는 경우는 미분하면 0이니까... input을 순..

2023. 1. 29. 19:40

문자열 정렬할 때 실수하기 쉬운부분 복기하기 -줄서기-

1. 문제 17178번: 줄서기 (acmicpc.net) 17178번: 줄서기 아이즈원의 팬인 시온이는 드디어 티켓팅에 성공하여 콘서트를 갔다. 콘서트장에 일찍 도착한 시온이는 기대하며 입장을 위해 줄을 섰다. 하지만 아이즈원의 인기대로 시온이를 포함한 많은 www.acmicpc.net 2. 풀이 문제를 읽어보면서 구조를 잘 생각해보면.. n개의 줄에 다섯명씩 있는데 앞 사람부터 입구에 입장을 할건데 티켓 순서대로 입장을 수행한다 근데 티켓 순서는 알파벳이 사전 순서대로, 그리고 숫자가 작은 순서대로가 먼저 오는것이다 입장을 하는데 내 순서가 아니면 대기줄에서 들어갈 순서가 맞는 사람인지 검사해서 들어갈 사람이면 보내주고 그래도 들어갈 사람이 없으면 현재 대기줄이 아닌 사람은 대기공간에 들어가야할 것이다..

2022. 12. 10. 02:43

1차원 convolution 연산을 효율적으로 하는 계산하는 방법은?

1. 문제 22964번: conv1d (acmicpc.net) 22964번: conv1d A = [1, 1], B = [1] : 1 1 A = [1, 1], B = [2] : 2 2 A = [1, 2], B = [1] : 1 2 A = [1, 2], B = [2] : 2 4 A = [2, 1], B = [1] : 2 1 A = [2, 1], B = [2] : 4 2 A = [2, 2], B = [1] : 2 2 A = [2, 2], B = [2] : 4 4 1+2+1+2+2+4+2+4 = 18 1+2+2+4+1+2+2+4 = 18 www.acmicpc.net 입력데이터와 필터가 주어질때, 1차원 convolution 연산을 수행하는 문제 2. 풀이 역시 만만한 문제가 아니다 단순히 곱하는거면 문제가 아닌..