알고리즘(BOJ)/Bronze

백준 - 입출력 10950

ch.0 2022. 10. 17. 14:52


10950

입력받은 두 정수의 값을 합하여 출력

1차

import java.io.IOException;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) throws IOException{
		
		Scanner sc = new Scanner(System.in);
		int a;
		a = sc.nextInt();
	
		for(int i=0;i<a;i++) {
			int b = sc.nextInt();
			int c = sc.nextInt();

			System.out.println(b+c);
		}
		

	}

}

답안

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
 
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());
 
		StringTokenizer st;
		StringBuilder sb = new StringBuilder();
 
		for (int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine(), " ");
			sb.append(Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken()));
			sb.append('\n');
		}
 
		System.out.println(sb);
	}
}

 


10951

1차 (scanner)

import java.io.IOException;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) throws IOException{
		
		Scanner sc = new Scanner(System.in);
	
		while(sc.hasNextInt()) {
			
			int a = sc.nextInt();
			int b = sc.nextInt();
			
			System.out.println(a+b);
			
		}
		sc.close();

	}

}

2차 (buffer)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String args[]) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		String str;

			while ((str = br.readLine()) != null) {

				st = new StringTokenizer(str, " ");
				int a = Integer.parseInt(st.nextToken());
				int b = Integer.parseInt(st.nextToken());
				sb.append(a + b).append("\n");
				System.out.print(sb);
				sb.setLength(0); 
			}
			


	}
}

 


10952

 

1차 (Scanner)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String args[]) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		String str = null;

		int a=1;
		int b=1;

		
			while (a!=0&&b!=0) {
				str = br.readLine();
				st = new StringTokenizer(str, " ");
				a = Integer.parseInt(st.nextToken());
				b = Integer.parseInt(st.nextToken());
				if(a!=0&&b!=0) {
					sb.append(a + b).append("\n");
				}

			}

			System.out.println(sb);

	}
}
 

핵심변경

	if(a==0&&b==0) {
					break;
				}

 


 

11022

 

 

입력받은 값을 변수에 담는 방식으로 변경

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
 
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());
 
		StringTokenizer st;
		StringBuilder sb = new StringBuilder();
 
		for (int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine(), " "); //중요
			int A=Integer.parseInt(st.nextToken()); //중요
			int B=Integer.parseInt(st.nextToken());
			sb.append("Case #"+(i+1)+": "+A+" + "+B+" = "+(A+B));
			sb.append('\n');
		}
 
		System.out.println(sb);
	}
}

 


11718

 

 

받은값이 존재할때까지 반복

1차 sc

 

import java.io.IOException;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) throws IOException{
		
		Scanner sc = new Scanner(System.in);
	
		while(sc.hasNextLine()) {
			
			
			System.out.println(sc.nextLine());
			
		}
		sc.close();

	}

}

 

2차 readline

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		StringTokenizer st;
		StringBuilder sb = new StringBuilder();
		String str;

		while ((str = br.readLine()) != null) {

	
			System.out.println(str);


		}

	}
}

 

해당 코딩으로 확인 할 수 있는점은

st = new StringTokenizer(br.readLine(), " ");

해당 코딩은 공백을 기점으로 값을 붙이기 위함이였다는 것.

값을 받는것은 br.readLine() 으로만으로도 충분하다는 것.

 


 

11720

 

 

1. String 값을 원소로 바꿔서 더해준다.

 

import java.util.Scanner;
 
public class Main {
	public static void main(String[] args) {		
		Scanner in = new Scanner(System.in);
 
		int N = in.nextInt();
		String a = in.next();
		in.close();
		
		int sum = 0;
        
		for(int i = 0; i < N; i++) {
			sum += a.charAt(i)-'0';
		}
		System.out.print(sum);
	}
}

 

 

2. byte로 받는다

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
 
public class Main {
	public static void main(String[] args) throws IOException {		
 
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		br.readLine();	// N 은 쓸모가 없으므로 입력만 받는다.
		
		int sum = 0;
		
		for(byte value : br.readLine().getBytes()) {
			sum += (value - '0');	// 또는 (a-48)
		}
		
		System.out.print(sum);
		
	}
}

두 코딩 모두 값을 UTF-16 인코딩 방식을 따르는데, [UTF-16 (유니코드) 의 앞부분은 아스키코드와 호환되기 때문에] '0' 이라는 문자는 46의 숫자와 같다.

UTF-16 인코딩에 맞게 각 문자의 값을 저장하므로 반드시 '0' 또는 48 을 빼주어야 한다.


 
11721

 

 

1차 substring으로 자르기

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		String str = br.readLine();

		int count = str.length();
		int head = count / 10;
		int tail = count % 10;
		int sub = 0;

		for (int i = 0; i < head; i++) {
			String output = str.substring(sub, sub + 10);
			sub += 10;
			System.out.println(output);

			
		}
		String output = str.substring(sub, sub + tail);
		System.out.println(output);

	}
}

 


2741

 

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		int A=1;
		
		while(A<=N) {

			System.out.println(A);	
			A++;
		}
	

	}

}

1부터 출력해야 해서 입력 받은 수 까지 A를 증가시킴.

 

 

 


2742

 

 

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		
		
		while(N>0) {

			System.out.println(N);	
			N=N-1;
		}
	

	}

}

 

 


2739

 

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		
		for(int i=1; i<10; i++) {
			System.out.println(N +" * "+i+" = "+N*i);
		}

	

	}

}

 

 


이중 배열 입력받고 출력하기

input 값

1 3 3 6 7
8 13 9 12 8
4 16 11 12 16
2 4 1 23 2
9 13 4 7 3

package test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {

		int [][]array = new int[5][5];
		int pari;
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		
		for(int i=0; i<5; i++) {
			st = new StringTokenizer(br.readLine()," ");
			for(int j=0; j<5; j++) {


				pari = Integer.parseInt(st.nextToken());
				array[i][j]=pari;
	
			}
		}
		
		for(int i=0; i<5; i++) {
			for(int j=0; j<5; j++) {
				System.out.print(array[i][j]+" ");
			}
			System.out.println();
		}


	}

}

한줄 입력받고 초기화 시키고 다시 입력받는식으로 함.

 

 

 

 

 

 

 

 

 

 

.end