[BAEKJOON] 반복문 10952번 - A+B (5)

밍챠코·2024년 3월 29일
0

BAEKJOON

목록 보기
29/38

📝[10952]

[Java]

1. Scanner 이용

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        while(true){
            int A = sc.nextInt();
            int B = sc.nextInt();
            
            if(A==0 && B==0){
                break;
            }
            System.out.println(A+B);
        }
        
        sc.close();
    }
}

💡 무한루프 → 조건문이 항상 참일 때 계속해서 반복되는 반복문

while(true)
{
	반복 실행할 문장;
}
  • break; → 반복문을 벗어남

2. BufferedReader/StringBuilder 이용

① StringTokenizer() 이용 (공백을 기준으로 문자열 분리)

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));
        StringBuilder sb = new StringBuilder();
        
        while(true){
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            int A = Integer.parseInt(st.nextToken());
            int B = Integer.parseInt(st.nextToken());
            
            if(A==0 && B==0){
                break;
            }
            sb.append(A+B).append("\n");
        }
        System.out.print(sb);
        
        br.close();
    }
}

② String.charAt() 이용

문제의 조건에서 입력되는 정수는 반드시 (0 < A, B < 10) 이다.
즉, 한 자릿수 정수만 입력받기 때문에 공백(" ")의 위치도 항상 고정되어 있다.

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));
        StringBuilder sb = new StringBuilder();
        
        while(true){
            String str = br.readLine();
            
            int A = str.charAt(0) - '0';
            int B = str.charAt(2) - 48;
            
            if(A==0 && B==0){
                break;
            }
            sb.append(A+B).append("\n");
        }
        System.out.print(sb);
        
        br.close();
    }
}

💡 charAt(i) → String 타입의 데이터(문자열)에서 i번째 문자를 char 타입으로 변환할 때 사용하는 메서드

  • charAt()은 해당 문자의 아스키코드 값을 반환하기 때문에 정수 형태로 변경하려면 -48 또는 -'0' 명시 필요

3. BufferedReader/BufferedWriter 이용

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

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        while(true){
            StringTokenizer st = new StringTokenizer(br.readLine());
            
            int A = Integer.parseInt(st.nextToken());
            int B = Integer.parseInt(st.nextToken());
            
            if(A==0 && B==0){
                break;
            }
            bw.write(A + B + "\n");
        }
        br.close();
        
        bw.flush();
        bw.close();
    }
}

[Javascript]

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\n");
let i = 0;

while(true){
    let [A, B] = input[i].split(" ").map(Number);
    if(A==0 && B==0){
        break;
    }
    console.log(A + B);
    i++;
}

[Python]

while True :
    A, B = map(int, input().split())
    
    if A==0 and B==0 :
        break
    else :
        print(A + B)

💡 파이썬에서는 예약어 True / False 의 첫 문자를 항상 대문자로 작성해야 함

  • true / false (X)

0개의 댓글