[BAEKJOON] 1000๋ฒˆ - A+B

๋ฐ์ฑ ์ฝ”ยท2023๋…„ 11์›” 28์ผ
0

BAEKJOON

๋ชฉ๋ก ๋ณด๊ธฐ
2/38

๐Ÿ“1000

[Java]

1. Scanner ์‚ฌ์šฉ

import java.util.Scanner; //Scanner ํด๋ž˜์Šค import

public class Main{
    public static void main(String[] args){
    	//๊ฐ์ฒด ์ƒ์„ฑ
        Scanner sc = new Scanner(System.in);
        //๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐ ์ดˆ๊ธฐํ™”
        int a = sc.nextInt();
        int b = sc.nextInt();
        
        System.out.print(a+b);
        
        sc.close();
    }
}

2. BufferedReader ์‚ฌ์šฉ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer; //StringTokenizer ํด๋ž˜์Šค -> ๊ตฌ๋ถ„์ž(default:๊ณต๋ฐฑ) ๊ธฐ์ค€ ๋ฌธ์ž์—ด ๋ถ„๋ฆฌ

public class Main {
    public static void main(String[] args) throws IOException {
    	//๊ฐ์ฒด ์ƒ์„ฑ
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        //๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐ ์ดˆ๊ธฐํ™”
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());
        
        System.out.print(a+b);
        
        br.close();
    }
}

๐Ÿ’ก ๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ๋Š” ํด๋ž˜์Šค๋ช…์„ Main์œผ๋กœ ํ•ด์ฃผ์–ด์•ผ ํ•จ!
๐Ÿ’ก BufferedReader๊ฐ€ Scanner๋ณด๋‹ค ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฆ„
๐Ÿ’ก StringTokenizer๊ฐ€ split๋ณด๋‹ค ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฆ„
๐Ÿ’ก BufferedReader ์‚ฌ์šฉ ์‹œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•„์š”(IOException/try~catch๋ฌธ ์‚ฌ์šฉ)

๐Ÿ”Ž StringTokenizer(String str, ๊ตฌ๋ถ„์ž)
โ†’ ๋ฌธ์ž์—ด(str)์„ ๊ตฌ๋ถ„์ž(default๊ฐ’ = " ")๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌ


[Javascript]

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split(' ');

console.log(Number(input[0]) + Number(input[1]));
//console.log(parseInt(input[0]) + parseInt(input[1]));

require('fs') โ†’ fs ๋ชจ๋“ˆ์„ ๋ถˆ๋Ÿฌ์˜ด

  • fs(File System) : Node.js์˜ ํŒŒ์ผ ์ฒ˜๋ฆฌ ๊ด€๋ จ ๋‚ด์žฅ ๋ชจ๋“ˆ
  • require() ๊ตฌ๋ฌธ : ๋‚ด์žฅ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ณผ์ •

readFileSync('/dev/stdin') โ†’ ํ‘œ์ค€์ž…๋ ฅ๊ฐ’์„ ๋ฐ›์•„์„œ ํŒŒ์ผ์„ ์ฒ˜๋ฆฌ

  • readFile(๋น„๋™๊ธฐ)
  • readFileSync(๋™๊ธฐ) โ†’ ์ฝ”๋“œ์˜ ์ˆœ์ฐจ์  ์‹คํ–‰, ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์ ํ•ฉ
  • /dev/stdin โ†’ ๋ฐฑ์ค€์—์„œ์˜ ์ž…๋ ฅ ํŒŒ์ผ ๊ฒฝ๋กœ

toString()

  • fs.readFileSync๋Š” buffer ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜ โ†’ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ โ†’ toString()์„ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ ํ•„์š”

split(' ')

  • ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆˆ ๋’ค ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ (data parsing)

Number()

  • ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
  • ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†๋Š” ๊ฐ’์ธ ๊ฒฝ์šฐ NaN ๋ฐ˜ํ™˜

๐Ÿง ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€ ๊ถ๊ธˆํ•ด์ง„ Number์™€ parseInt์˜ ์ฐจ์ด์ !

const test = '2023๋…„๋„';
parseInt(test); // 2023
Number(test); // NaN

-parseInt๋Š” ๋ฌธ์ž์™€ ์ˆซ์ž๊ฐ€ ํ˜ผํ•ฉ๋œ ๋ฌธ์ž์—ด์—์„œ ์ˆซ์ž(์ •์ˆ˜)๋งŒ ๋ฝ‘์•„์„œ ๋ณ€ํ™˜
(๊ทธ๋Ÿฌ๋‚˜ '์ œ1ํ•ญ'๊ณผ ๊ฐ™์ด ๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” parseInt๋„ NaN์„ ๋ฐ˜ํ™˜)
-Number()๋Š” ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒƒ์œผ๋กœ ์ธ์‹ํ•˜์—ฌ NaN์„ ๋ฐ˜ํ™˜

const test = '3.141592';
parseInt(test); // 3
Number(test); // 3.141592

-parseInt๋Š” ๋ฌธ์ž์—ด ์ „์ฒด๊ฐ€ ์ˆซ์ž์ผ ๋•Œ ์ •์ˆ˜๋งŒ ๋ฝ‘์•„์„œ ๋ณ€ํ™˜
-Number()๋Š” ์†Œ์ˆ˜์ ๊นŒ์ง€ ๋ชจ๋‘ ๋ณ€ํ™˜


[Python]

1. map() ํ•จ์ˆ˜ ๋ฏธ์‚ฌ์šฉ

A, B = input().split() # ๋ฌธ์ž์—ด์„ input()ํ•จ์ˆ˜๋กœ ์ž…๋ ฅ๋ฐ›๊ณ  split()ํ•จ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ๋ณ€์ˆ˜ A,B์— ๊ฐ๊ฐ ์ €์žฅ
print(int(A)+int(B)) # int() ํ•จ์ˆ˜๋กœ A์™€ B๋ฅผ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜

input() ํ•จ์ˆ˜

  • ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜
  • ์ž…๋ ฅ๊ฐ’์„ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜

split() ํ•จ์ˆ˜ : ๋ฌธ์ž์—ด์„ ํŠน์ • ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ„๋Š” ํ•จ์ˆ˜
โ†’ ๊ตฌ๋ถ„์ž์˜ default ๊ฐ’์€ ๊ณต๋ฐฑ(" ")

int() ํ•จ์ˆ˜ : ๋ฌธ์ž์—ด์„ ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

2. map() ํ•จ์ˆ˜ ์‚ฌ์šฉ

A, B = map(int, input().split())
print(A+B)

map(function, iterable) : ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒํ˜•(๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ ๋“ฑ)์˜ ์š”์†Œ๋ฅผ ํ•จ์ˆ˜์— ๋„ฃ๊ณ  ๋ฆฌํ„ด๊ฐ’์œผ๋กœ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ or ํŠœํ”Œ์„ ๊ตฌ์„ฑํ•ด์ฃผ๋Š” ํ•จ์ˆ˜

0๊ฐœ์˜ ๋Œ“๊ธ€