티스토리 뷰

알고리즘/기초구현

백준_방번호

빨간공 2016. 9. 8. 13:51


[ 해결 방법 ]

그냥 무식하게 풀었다. 세트판을 만들어 놓고 입력받은 숫자가 있으면 해당 숫자판에 1을 표시하고 없으면 판을 늘렸다. 그래서 늘려 놓은 판을 출력했다. 


[ 코드 ]

#include <stdio.h>
int set[8][10];
int cnt = 1;
int seperator(int n, int* arr)
{
int i = 0;
while (n)
{
arr[i++] = n % 10;
n /= 10;
}
return i;
}
int Find(int num)
{
for (int i = 1; i <= cnt; i++)
{
if (set[i][num] == 0)
return false;
}
return true;
}
int main()
{
int N, sepN[8], sepCnt = 0;
scanf("%d", &N);
sepCnt = seperator(N, sepN);
for (int i = 0; i < sepCnt; i++)
{
int num = sepN[i];
if (!Find(num))
set[cnt][num] = 1;
else
{
if (num == 9 || num == 6)
num = (num == 9) ? 6 : 9;
if (!Find(num))
set[cnt][num] = 1;
else
set[++cnt][num] = 1;
}
}
printf("%d\n", cnt);
return 0;
}


'알고리즘 > 기초구현' 카테고리의 다른 글

백준_시그마  (0) 2016.09.16
백준_01타일  (0) 2016.09.08
codeground 개구리 뛰기  (0) 2016.08.25
codeground 프로그래밍 경진대회  (0) 2016.08.24
codeground 미궁속의 방  (1) 2016.08.24
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함