hyunjin

[1475][C]방 번호->실패 본문

알고리즘 연습/백준

[1475][C]방 번호->실패

_h.j 2019. 5. 2. 14:56
728x90

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

 

1475번: 방 번호

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다.

www.acmicpc.net

 

문제

다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.

다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)

 

 

그니까 count가 1이면 set배열의 각 원소의 값이 1이 되고 (실제 실행 순서는 이거와 조금 다르지만)

거기서 입력받은 수 분리해서 0보다 커서 사용가능하면 사용하고 set의 해당 수 감소시키고 0이라면

count 증가 시키고 set의 각 원소도 1씩 증가 시키고 혹시 6이나 9라면 서로의 set값을 확인하는 코드 넣어준다.

 

<코드>

int main(void) {
int set[10] = { 0 };
int count = 0;
int roomNum, num, dev = 1;

 

scanf("%d", &roomNum);

while (roomNum != 0) {
num = roomNum % 10;
roomNum /= 10;

if (!set[num]) {//0인경우에
if (num == 6 || num == 9) {
if (set[15 - num]) {//상대수에서 사용가능한게 여유가있음
set[15 - num] --;
continue;//count증가 시킬 이유 없으므로 넘어가고
}
}
count++;
for (int i = 0; i < 10; i++)
set[i] += 1;
}
else set[num]--;
}
printf("%d", count);
return 0;
}

 

 

결과는 실패....

728x90

'알고리즘 연습 > 백준' 카테고리의 다른 글

[2441]별찍기4  (0) 2019.05.15
[2439]별찍기-2  (0) 2019.05.15
[10250][C]ACM호텔  (0) 2019.05.01
[2775][c] 부녀회장이 될테야. 포인터 수정!!!  (0) 2019.05.01
[2750][c]수 정렬  (0) 2019.04.30