[백준] C++ 7562번:나이트의 이동!

2025. 12. 15. 13:25·알고리즘

생각할 점

1. 다양한 이동 범위 -> dx, dy 배열에 추가

2. 몇 번째 이동인지? -> v 벡터에 (다음 이동할 영역 값 ) = (현재 영역 값) + 1 

 

<정답>

#include <bits/stdc++.h>
using namespace std;

int dy[8] = {2, 1, -1, -2, -2, -1, 1, 2};
int dx[8] = {1, 2, 2, 1, -1, -2, -2, -1};

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    int t;
    cin >> t;
    for (int r = 0; r < t; r++) {
        int n; 
        cin >> n;
        vector<vector<int>> v (n, vector<int>(n, -1));
        queue<pair<int, int>> q;

        int y, x;
        cin >> y >> x;
        int ty, tx;
        cin >> ty >> tx;
        if (y == ty && x == tx) cout << "0"<< "\n";
        q.push({y, x});
        v[y][x] = 0;
        while (!q.empty()) {
            auto cur = q.front();
            q.pop();
            for (int i = 0; i < 8; i++) {
                int yy = cur.first + dy[i];
                int xx = cur.second + dx[i];
                if (yy > -1 && yy < n && xx > -1 && xx < n && v[yy][xx] == -1) {
                    if (yy == ty && xx == tx) {
                        cout << v[cur.first][cur.second] + 1 << "\n";
                        while(!q.empty()) q.pop();
                        break;
                    }
                    q.push({yy, xx});
                    v[yy][xx] = v[cur.first][cur.second] + 1;
                }
            }
        }
    }

    return 0;
}

'알고리즘' 카테고리의 다른 글

[백준] C++ 2583번:영역 구하기!  (0) 2025.12.15
[백준] C++ 5427번: 불!  (0) 2025.12.15
[백준] C++ 7569번:토마토!  (0) 2025.12.14
[백준] C++ 10026번:적록색약  (0) 2025.12.14
[백준] C++ 1012번:유기농배추  (0) 2025.12.14
'알고리즘' 카테고리의 다른 글
  • [백준] C++ 2583번:영역 구하기!
  • [백준] C++ 5427번: 불!
  • [백준] C++ 7569번:토마토!
  • [백준] C++ 10026번:적록색약
Deepmind_딥마인드
Deepmind_딥마인드
깊게 사고하자
  • Deepmind_딥마인드
    딥마인드
    Deepmind_딥마인드
  • 전체
    오늘
    어제
    • 분류 전체보기 (19)
      • 알고리즘 (11)
      • 메모 (0)
      • C언어 (0)
      • C언어 동아리 (0)
      • Ubuntu (0)
      • Ollama (1)
      • AI (4)
      • 정보공유 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    에어팟
    만다라트 #오타니 #목표설정 #무료템플릿
    배터리 광탈
    단차
    ubuntu server 24.04.4 LTS
    OpenAI
    c언어
    ollama
    냄새
    먼지
    agent
    렉
    Claude
    스크래치
    Ai
    소셜딜레마 #넷플릭스 #다큐멘터리 #넷플릭스 영화추천
    Air Pods Pro
    호환
    DBeaver
    노이즈캔슬링
    에어팟 프로
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Deepmind_딥마인드
[백준] C++ 7562번:나이트의 이동!
상단으로

티스토리툴바