| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- C#문법
- 유니티서바이벌게임만들기
- c#코테
- 백준 구현문제
- 리그오브레전드턴제게임
- 유니티게임만들기
- 티스토리챌린지
- solved class 2
- Unity
- c++ 백준
- 백준코딩테스트
- 오블완
- c++ solved.ac
- c#기초문법
- c#코딩기초트레이닝
- unity게임만들기
- C++
- unity3d게임만들기
- 백준코테
- c#
- c#기본문법
- 백준 C++
- 백준 c++ 공부
- 유니티공부
- unity3dservival
- 백준
- unity게임
- 유니티
- 바킹독알고리즘
- 바킹독
- Today
- Total
나 개발자 진짜 되냐?
바킹독 0x03 문제2 - 숫자의 개수 / 백준 2577번 본문

바쁘다고 코테문제를 미루다니.
나 자신 나약하다.
깃 허브를 보니 2주 동안 안 풀었더라..
진짜 이제 절대 안 된다.
절대
절대
절대
절대
절대
절대는 중국어로 뭘까?
绝对
이라고 한다.
주에 뚜이..?
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 번역기는 그렇게 말해주었다.
그래 다 까먹었지만 오랜만에 문제 한번 풀어보자!
숫자의 개수

처음에 이 문제를 풀 때 A, B, C가 1000보다 작다해서
999라고 전제하에 999*999*999 하면 몇 자리일까..
100,000,000 자리..?
.. 헉
배열을 1억 칸을 만들 수 있나..
하며 계산하기 시작했다.
배열 일억 개..
그리고 그 숫자를 하나씩 넣고..
1부터 10까지 비교해서..
카운트하면 10개가 나올 거고...
하며 생각해 보니
문자열도 하나의 배열이라고 했던 기억이 어렴풋 난다.
그렇다면 굳이.. 일억 개의 배열을 만들 필요는 없을 거 같다.. 아마도?
생각해 보니 매우 큰 문제가 있었다
뭐 배열이 1억 개든 뭐든 곱한 값이
뭐 2828282828 이런 숫자가 나올 텐데
이걸 한 글자씩 어떻게 떼어내지..?
결국 답지를 보았다.
갖은 1억 개 생각을 다하고..
진짜 의미 없는 나의 생각이었다.
도대체 이 답에 1억이 어디 있죠?

계산 결과를 자릿수별로 확인하여 저장하는 방법을
while문을 사용하더라..!
2093484의 경우
10으로 나누면 나머지가 결국 4니까
num [4]의 카운트를 하나 올리고?
그다음에 10으로 나눈 몫
209348 만 남아서 다시 while 돌리는 것이다.
좋은 방법이군..
숫자는 이렇게 자르는구나 하며 깨달았다.
숫자를 문자열로 자르는 방법도 있다고 지피티가 알려주었다.

그다음에 s값을 ch에 하나씩 담아서
s는 문자열이라서 for문을 이렇게 쓰나 보다.
s크기만큼 ch에 담는다는 뜻으로
'0'도 아스키코드인가 보다.
ch는 문자열이기 때문에 '0'을 빼줘서 숫자로 만드는 것이다.
만약에 s크기만큼으로 for문 정석으로 쓰면

이렇게 쓸 수 있다.
어렵다.
범위용 for문 어렵다.
익숙해져야겠지..
while문은 다음에 또 나올지 모르니
숙지하고 있어야겠다.
숫자 쪼갤 땐 while 돌리기!
'C++을 시작해봐요! > 알고리즘을 공부해봐요!' 카테고리의 다른 글
| 바킹독 0x03 문제4 - 두 수의 합 / 백준 3273번 (0) | 2025.09.24 |
|---|---|
| 바킹독 0x03 문제3 - 방 번호 / 백준 1475번 (0) | 2025.09.23 |
| 바킹독 0x03 문제1 - 알파벳 개수 / 백준 10808번 (2) | 2025.09.16 |
| 바킹독 0x02 문제27 - 최댓값 / 백준 2562번 (0) | 2025.09.15 |
| 바킹독 0x02 문제26 - 별찍기 9 / 백준 2446번 (0) | 2025.09.03 |