반응형
처음에는 단순히 값을 String으로 바꿔서 더해서 length를 구하려고 했다.
이 때 생기는 문제는 100000000까지의 수가 모두 메모리에 올라가기 때문에 메모리 초과가 난다는 것이다.
그래서 각 자리 수를 계산해서 푸는 방법을 선택해서 풀었다.
👨🏫 풀이
해당 숫자를 10으로 나눈 값이 0이 될 때까지 나눠줘서 자릿수를 구한다.
👨🏻💻 코드
package 번1748;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
//String res = ""; //메모리 초과
long res = 0L;
for(int i = 1 ; i <= N ; i++){
int tmp = i;
int plus = 1;
while(tmp/10 != 0){
plus++;
tmp /= 10;
}
res += plus;
}
System.out.println(res);
}
}
반응형
'👨🏫ps > 🔟0️⃣백준' 카테고리의 다른 글
[백준] 11724번 연결 요소의 개수 풀어보기 [백준] (0) | 2022.03.04 |
---|---|
[백준] 15661번 링크와 스타트 풀어보기 [Java] (0) | 2022.03.04 |
[백준] 1759번 암호 만들기 풀어보기 [Java] (0) | 2022.03.04 |
[백준] 17404번 RGB거리 2 풀어보기 [Java] (0) | 2022.03.02 |
[백준] 13398번 연속합 2 [Java] (0) | 2022.03.02 |