[코테 매일 풀기 6일차] 1030

HAHAING·2025년 10월 30일

코딩 테스트

목록 보기
15/30
post-thumbnail

백준 11720 숫자의 합

아이디어

  • 입력을 받는게 은근 쉽지 않네
  • 공백없이 숫자 받기 -> ?
  • 그냥 String으로 받아서 charAt()-'0'으로 받기

나의 문제 풀이 과정

  • scanner로 입력을 받을때, scan.nextInt()로 받으면 '\n'의 개행문자가 남아 입력부분이 잘 처리가 안되었음.
    -> scan.nextLine()으로 받기
public class Review1 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int N = Integer.parseInt(scan.nextLine());

        //배열 생성
        int[] array = new int[N];

        String line = scan.nextLine();

        //N개만큼 받기
        for (int i = 0; i< N ; i++) {
            array[i] = line.charAt(i) - '0';
        }

        for (int i = 0; i< N ; i++) {
            System.out.println(array[i]);
        }
    }
}

코테에서 입력 꿀팁

1. N개의 정수 한줄에

//입력: 5 5 4 3 2 1 
int n = scan.nextInt(); 
int[] arr = new int[n]; 
for (int i=0; i<n; i++){
	arr[i] = scan.nextInt(); 
}

2. 공백으로 구분된 숫자 -> BufferedReader + StringTokenizer

//입력: 1 2 3 4 5
String[] input = bf.readLine().split(" "); 
int[] arr = new int[input.length]; 
for (int i = 0; i< input.length; i++){
	arr[i] = Integer.parseInt(input[i]); 

//또는 String Tokenizer
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); 
 StringTokenizer st = new StringTokenizer(bf.readLine()); 
 int N = Integer.parseInt(st.nextToken()); 
}

3. 붙어 있는 숫자들

//입력: 12345
String line = bf.readine(); 
int[] arr = new int[line.length()]; 
for (int i = 0; i< line.length(); i++){
	arr[i] = line.charAt(i)- '0'; 
}

4. 2차원 배열 받기

// 입력: 
// 3 4
// 1 2 3 4
// 5 6 7 8
// 9 10 11 12

int n = scan.nextInt(); 
int m - scan.nextInt(); 
int[][] arr = new int[n][m]; 
for (int i = 0; i< n; i++){
	for(int j = 0; j< m; j){
    		arr[i][j] = scan.nextInt(); 
    }
}

5. 끝까지 읽기 (EOF까지 읽기)

//scanner 
while(scan.hasNext()){
	int n = scan.nextInt(); 
    //처리 
}

6. 빠른 출력

StringBuilder sb = new StringBuilder(); 
for (int i =0; i< n; i++_){
	sb.append(i).append("\n"); 
}
System.out.print(sb); 
profile
따뜻한 시선으로 세상을 변화시키는 데이터사이언티스트

0개의 댓글