본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 4922 : Walk Like an Egyptian

반응형

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

 

4922번: Walk Like an Egyptian

Walk Like an Egyptian is an old multi-player board game played by children of the Sahara nomad tribes. Back in the old days, children would collect stones, and number each one of them. A game with N players requires N2 stones. Each player chooses N stones.

www.acmicpc.net

단순 구현문제였습니다.

📕 풀이방법

📔 입력 및 초기화

while loop를 수행합니다.n, 전체 일꾼 수 sum, 매 변마다 새로 배치되는 일꾼 수 cnt를 선언 후 cnt = 1로 초기화해주며 n에 grid의 한 변의 길이를 입력해줍니다.n이 0이면 입력을 종료합니다.

📔 풀이과정

매 번 새로 배치되는 cnt는 2씩 증가합니다. for문을 돌며 sum에 cnt를 누적해 더해줍니다.

📔 정답출력

가장 오른쪽 위의 일꾼 번호는 가장 왼쪽 위 일꾼 번호로부터 변만큼 뺀 값입니다. 따라서 sum - n + 1이 됩니다.

이를 출력 형식에 맞게 출력해줍니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
int main(){
    while(1){
        int n, sum = 0, cnt = 1;
        cin >> n;
        if(!n) break;
        for(int i = 0; i < n; i++, cnt+=2) sum += cnt;
        cout << n << " => " << sum - n + 1 << '\n';
    }
}