반응형
https://www.acmicpc.net/problem/1598
구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. 두 숫자를 입력받을 변수 n1, n2를 선언해주고 각 숫자의 행,열 좌표를 구해주기 위한 struct Coord를 선언해줍니다.
2. n1, n2를 입력해줍니다.
📔 풀이과정
1. 수에 대해 getCoord함수를 수행합니다. 1-1. 행, 열을 선언합니다. 1-2. 행은 num % 4입니다. 그 중 4번째 행인 경우 나머지가 0이므로 r = 4로 처리해줍니다. 1-3. 열은 num / 4입니다. 그 중 4번째 행인 경우 한 칸 더 오른쪽으로 간것으로 처리되므로 1을 제합니다. 1-4. 계산된 r, c의 구조체를 반환해줍니다.
2. 반환된 두 구조체로부터 직각거리를 구합니다.
📔 정답출력
2.에서 각 행, 열의 차이의 절댓값을 각각 더해준 결과를 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
struct Coord {int r, c; };
int n1, n2;
Coord getCoord(int num){
int r, c;
r = num % 4;
if(!r) r = 4;
c = num / 4;
if(num % 4 == 0) c--;
return {r, c};
}
int main(){
cin >> n1 >> n2;
Coord x = getCoord(n1);
Coord y = getCoord(n2);
cout << abs(x.r - y.r) + abs(x.c - y.c);
}
'Algorithm > Implementation' 카테고리의 다른 글
(Go) - 백준(BOJ) 2557 : Hello World (0) | 2021.11.19 |
---|---|
(C++) - 백준(BOJ) 23375 : Arm Coordination (0) | 2021.11.19 |
(C++) - 백준(BOJ) 22015 : 金平糖 (Konpeito) (0) | 2021.11.17 |
(C++) - 백준(BOJ) 21638 : SMS from MCHS (0) | 2021.11.17 |
(C++) - 백준(BOJ) 21633 : Bank Transfer (0) | 2021.11.16 |