COS PRO 1차 5번 - 소용돌이 수 python
while문에서 이동 방향을 바꿔가며 대각선일 때 값을 더하는 풀이도 있지만 n이 짝수/홀수일 경우 규칙을 발견해 풀었다. 제공 답변과 n=100일 때까지 출력이 같음을 확인함. def solution(n): answer = 0 # n이 짝수면 2, 6, 6, 10, 10, ... (처음엔 하나, 두번씩, 4 더하며) -> 끝에서부터 answer에 더함 # n이 홀수면 4, 4, 8, 8, .., (처음엔 두개, 두번식, 4 더하며) -> 끝에서부터 answer에 더함 if n % 2 == 0: curNum = n * n - 1 minusNum = 2 cnt = 1 while (curNum > 0): cnt += 1 answer += curNum curNum -= minusNum if cnt == 2: ..
2022. 4. 11.
백준 16953 A->B
www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net A, B 범위가 10^9길래 visited 배열은 두지 않고 (이때부터 실패를 예감함..) bfs 구현했는데, 역시 틀렸다. 순서를 반대로 생각하니 풀렸다. A를 B로 만드는 것이 아니라, B를 A로 만들 수 있는지 확인하는 것. ex) a=2, b=162라면 162는 2로 나눠질 뿐 뒤에서 1을 뺄 수는 없으므로 2로 나누면 81, 1을 빼면 8, 2로 나누면 4, 2 #include #include using namespace std; void bfs(int a, int b) { queue q; q.push({ b, 1 }); wh..
2021. 3. 30.
백준 7562 나이트의 이동
www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 쉬운 문제였는데 테스트 케이스 중간에 멈추길래 뭔가 했는데 그래프를 초기화하지 않아서 그랬던 것이었음.. 테스트케이스 여러번 돌릴 땐 초기화를 잘 하자 #include #include using namespace std; int l, ax, ay, bx, by, sum; int graph[300][300]; // 나이트의 이동 가능 범위 int dx[8] = { 1, 1, 2, 2, -1, -1, -2, -2 }..
2021. 3. 26.