반응형
12755번 수면 장애
https://www.acmicpc.net/problem/12755
12755번: 수면 장애
수면 장애를 가진 강민이는 잠이 오지 않아 적잖은 고통을 느끼고 있다. 강민이는 잠이 오지 않을 때마다 속으로 양을 세고 있었는데, 오늘따라 백만 마리까지 세었는데도 잠이 오지 않았다. 한
www.acmicpc.net
Comment
진짜 처음엔 별거 없을거라 생각했는데 생각보다 난이도가 높았던 문제
좀 애먹으면서 문제를 풀었던 것 같다. 메모리 제한이 생각보다 너무 컸고, 정답숫자 위치에서 인덱스 범위 잡는 것에 대한 고민...
hint
for문의 범위는 상관없고 번호와 길이를 따로 저장해서 확인하면 좀 편하다.
Solution
temp 인트를 선언해서 길이를 계속 저장해준다! 길이 저장 후 length가 n과 같거나 커졌을 때 for문을 탈출, 해당 i의 값이 n의 범위에 걸친 i이고, for문의 증강연산으로 인해 i-1이 정답번호이다. 여기서 값 추출은 length-n을 통해 0 ~ i.length()-1 까지 위치를 잡아서 출력하는데, 인덱스를 통해 출력하기 때문에 StringBuilder를 만들어서 reverse메서드로 먼저 뒤집어줬다.
솔직히 깔끔하지는 못한 코드지만 그래도 어떻게든 해결했단 것에 만족..!
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 | import java.io.*; public class p12755 { public static void main(String[] args) throws IOException{ BufferedReader br =new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int length = 0; int i = 1; for(i = 1; length < n; i++){ //10을 하려면 어떻게 하는데? //10일 때 1카운트 0 카운트 length++; int temp = i; while(temp >= 10){ length++; temp /= 10; } } StringBuilder sb = new StringBuilder(); sb.append(i-1); sb.reverse(); System.out.println(sb.charAt(length-n)); } } | cs |
반응형
'공부 > Algorithm' 카테고리의 다른 글
백준 11559번 Puyo Puyo 자바로 풀어 본 짧은 글 (0) | 2023.11.30 |
---|---|
백준 2310번 어드벤처 게임 자바로 풀어 본 짧은 글 (0) | 2023.11.28 |
백준 14494번 다이나믹이 뭐예요? 자바로 풀어 본 짧은 글 (0) | 2023.09.15 |
백준 1680번 쓰레기 수거 자바로 풀어 본 짧은 글 (0) | 2023.09.07 |
백준 1417번 국회의원 선거 자바로 풀어 본 짧은 글 (0) | 2023.08.17 |