[백준/BOJ]21313. 문어 [Bronze2]

  1. 문어

문제출처 : https://www.acmicpc.net/problem/21313

수열은 1,2,1,2,1,2,1,2가 계속반복될것이다.
단, 문어의 수가 짝수일때만.
문어가 홀수개면 마지막문어와 첫번째문어는3번손으로 서로를 잡을것이다.
왜냐하면 첫번째문어는 두번쨰문어와 1번손을잡았고, 마지막문어와 마지막-1번째문어는 2번손을 잡았기 때문에 그다음 낮은 3번손을 잡을것이다.
때문에 홀수의 경우와 짝수의 경우로 나눠서 생각한다.

code

-코드)
#include <stdio.h>
int main()
{
    int N,i,odd=0; //홀수, 짝수일경우에 수열이 달라지므로 구분해준다
    scanf("%d",&N);
    if(N%2==1)
    {
        odd=1; //홀수면 홀수라고 표시
        N--; //홀수일경우에는 마지막에 3이들어갈거기때문에 -1을해준다.
    }
    while(N) //N이 --되면서 0이 될때까지 반복
    {
        if(N%2==0)
            printf("1 ");
        else
            printf("2 ");
        N--;
    }
    if(odd) //홀수라면 마지막에 3을붙여준다.
        printf("3 ");
    return 0;
}

좋은 웹페이지 즐겨찾기