Problem Solving/BOJ

[백준 / BOJ] C++ 27445 Gorani Command

nageune 2023. 2. 11. 19:57
728x90
반응형

27445번: Gorani Command

 

문제

https://www.acmicpc.net/problem/27445

 

27445번: Gorani Command

도망친 고라니가 숨어있는 칸의 좌표를 $(r,c)$라 할 때, $r$과 $c$를 순서대로 출력한다.

www.acmicpc.net

 

 

풀이

N×M 크기의 배열에서 (1,1)에서 시작해 (N,1)을 거쳐 (N, M)까지  'ㄴ'자 모양으로 탐색하고 각 위치에서 도망친 고라니까지의 거리가 주어진다. 두 칸 (a1, b1)과 (a2, b2) 사이의 거리는 |a1 - a2| + |b1 - b2|로 정의된다.

 

예제 입력 1은 아래와 같다.

4 5

4

3

4

5 4 3 2 3

 

위에서 N개의 수 4, 3, 4, 5 중 3이 가장 작으므로 고라니의 위치는 2행에 있다. M개의 수 5, 4, 3, 2, 3 중 2가 가장 작으므로 고라니는 4열에 있다. 따라서 답은 2 4 이다.

 

위와 같은 방법으로 문제를 해결하도록 코드를 작성했다.

 

 

코드

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

int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  int n, m, r = 1, c = 1, x, N = 50, M = 50;
  cin >> n >> m;
  for (int i = 1; i < n; i++) {
    cin >> x;
    if (x < N) {
      r = i;
      N = x;
    }
  }
  cin >> x;
  if (x < N)
    r = n;
  M = x;
  for (int i = 2; i <= m; i++) {
    cin >> x;
    if (x < M) {
      c = i;
      M = x;
    }
  }
  cout << r << ' ' << c << '\n';
  return 0;
}

 

728x90
반응형