티스토리 뷰

생각

Github - https://github.com/hellojdh/Code/blob/master/src/swexpert/d3/Q6718.java 물건의 거리가 주어졌을 때, 주어진 방식으로 거리에 따라 수치를 매겨 출력하여라.


처음 생각

우선, 테스트케이스의 개수가 100,000개 이므로 StringBuilder를 통해 출력을 해주어야겠다고 생각하였다.


다음 생각

문제는 간단하다. 거리가 주어지면 그 거리에 해당하는 주어진 수치를 출력하면 된다. 조금 까다로운 점이라면 문제에서 거리는 m 단위로 주어지고 구분해야하는 수치는 km 를 기준으로 수치를 분류해놓았다.

▶ 1km는 1000m 임을 기억하면서 문제를 풀면된다.


다다음 생각

입력으로 들어오는 거리가 int형 범위를 넘지 않으므로 int로 입력을 받아주었다. 구분해야할 거리의 수치가 6개 밖에 되지 않으므로 조건문을 통해 해당 케이스들을 모두 분리해주었다.

▶ 조심해야할 점은 x이상 y미만 이므로 이상과 미만을 잘 보면서 km를 m로 변환하여 작성해주었다.


방안

1) Java 풀이


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
package swexpert.d3;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Q6718 {
    public static void main(String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();
        for(int i=0;i<n;i++){
            sb.append("#"+(i+1)+" ");
            int t = Integer.parseInt(br.readLine());
            // 1km = 1000m 모든 범위가 적으므로 분류해주자.
            if(t<100) sb.append(0);
            else if(t>=100&&t<1000) sb.append(1);
            else if(t>=1000&&t<10000) sb.append(2);
            else if(t>=10000&&t<100000) sb.append(3);
            else if(t>=100000&&t<1000000) sb.append(4);
            else sb.append(5);
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday