๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ ์ด์•ผ๊ธฐ/JAVA

Java - ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋”ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์˜ˆ์ œ

by 0_0๐Ÿ–ค 2023. 12. 10.
๋ฐ˜์‘ํ˜•

 

 
 
 

 
 
๋ฐฑ์ค€ 11382๋ฒˆ ๋ฌธ์ œ ํ’€์ด
 
๋ฌธ์ œ ๋‚ด์šฉ์€
77 77 7777 ์œผ๋กœ ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›๊ณ 
77+77+7777 ๊ฒฐ๊ณผ์ธ 7931 ์ด ํ”„๋ฆฐํŠธ ๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ.
 
 
์šฐ์„  ์˜ˆ์ œ ์ž…๋ ฅ1์˜ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๋„๋ก ํ•ด์•ผํ•œ๋‹ค.
Scanner๋กœ ๊ฐ’์„ ๋ฐ›์„ ๊ฒฝ์šฐ ๊ณต๋ฐฑ ๋˜๋Š” ๊ฐœํ–‰(' ', '\t', '\r', '\n')์„ ๊ฒฝ๊ณ„๋กœ ์ฝ์–ด๋ฒ„๋ฆฌ๋ฏ€๋กœ
๊ณต๋ฐฑ์„ ํฌํ•จํ•œ ์ž…๋ ฅ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋ฐ›๊ธฐ ์œ„ํ•ด BufferedReader๋ฅผ ์ด์šฉํ–ˆ๋‹ค.
 
 
 


BufferedReader ๋ฉ”์†Œ๋“œ

BufferedReader๋Š” ์—”ํ„ฐ (\n)๊ฐ’์„ ๊ฒฝ๊ณ„๋กœ ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›๋Š”๋‹ค.
์‚ฌ์šฉ์„ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜ import๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
 

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

// ํ•œ ๋ฒˆ์— import
import java.io.*;

 

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException{
    
    	// BufferedReader๋กœ ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›๋Š” ๊ธฐ๋ณธ ํ˜•ํƒœ
        BufferedReader num = new BufferedReader(new InputStreamReader(System.in));
        
    }
}

 


 
 
์ž…๋ ฅ๊ฐ’์„ ๋ฐ›์€ ํ›„ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ํŒŒ์‹ฑํ•˜๋„๋ก ํ•ด์•ผํ•œ๋‹ค.
์—ฌ๊ธฐ์—์„œ๋Š” StringTokenizer ๋ฉ”์†Œ๋“œ,
StringTokenizer์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” nextToken()๊ณผ HasMoreTokens()์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ–ˆ๋‹ค.
 
 


StringTokenizer ๋ฉ”์†Œ๋“œ

StringTokenizer ๋ฉ”์†Œ๋“œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•˜๋Š” ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆ ์ค€๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆ„๊ณ 
๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ์‰ผํ‘œ(,)๋‚˜ ์ (.) ๋“ฑ์˜ ํŠน์ • ๊ตฌ๋ถ„์ž๋ฅผ ์ง€์ •ํ•  ๊ฒฝ์šฐ ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.
 

import java.util.StringTokenizer;


// ๋„์–ด์“ฐ๊ธฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆˆ๋‹ค 
StringTokenizer st = new StringTokenizer(๋ฌธ์ž์—ด); 

// ํŠน์ • ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆˆ๋‹ค
StringTokenizer st = new StringTokenizer(๋ฌธ์ž์—ด, ๊ตฌ๋ถ„์ž);

 
 

nextToken() ๋ฉ”์†Œ๋“œ

StringTokenizer๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด์•ˆ์˜ ๋ถ„๋ฆฌ๋œ ๋ฌธ์ž์—ด์€ nextToken() ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

import java.io.*;
import java.util.StringTokenizer;

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

        StringTokenizer st = new StringTokenizer("ํ† ๋ผ ํ˜ธ๋ž‘์ด ๊ณฐ");

        System.out.println(st.nextToken());// ํ† ๋ผ ์ถœ๋ ฅ
        System.out.println(st.nextToken()); // ํ˜ธ๋ž‘์ด ์ถœ๋ ฅ
        System.out.println(st.nextToken()); // ๊ณฐ ์ถœ๋ ฅ
    }
}

 

hasMoreTokens() ๋ฉ”์†Œ๋“œ

hasMoreTokens() ๋ฉ”์†Œ๋“œ๋Š” StringTokenizer ๊ฐ์ฒด ์•ˆ์— ๊ฐ€์ ธ์˜ฌ ๊ฐ’์ด ์žˆ์„ ๊ฒฝ์šฐ true
๋”์ด์ƒ ๊ฐ€์ ธ์˜ฌ ๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ false ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
 
 
 
๋ฉ”์†Œ๋“œ๋ฅผ ํ™œ์šฉํ•œ ์ตœ์ข… ์™„์„ฑ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
 

import java.io.*;
import java.util.StringTokenizer;

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

        // ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›๊ณ  num ์— ๋Œ€์ž…
        BufferedReader num = new BufferedReader(new InputStreamReader(System.in));
        // String ํƒ€์ž…์œผ๋กœ ์ž…๋ ฅ๊ฐ’ ์ €์žฅ
        String str = num.readLine();

        // ๋ณ„๋„์˜ ๊ตฌ๋ถ„์ž ์ง€์ •์ด ์—†์œผ๋ฏ€๋กœ ๊ณต๋ฐฑ, ํƒญ์„ ๊ธฐ๋ณธ ๊ตฌ๋ถ„์ž๋กœ ์‚ฌ์šฉ
        StringTokenizer st = new StringTokenizer(str);

        // totalNum ์ดˆ๊นƒ๊ฐ’ 0 
        int totalNum = 0;

        // st.hasMoreTokens() : st์— ๋”์ด์ƒ ๊ฐ€์ ธ์˜ฌ ๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ false ๋ฐ˜ํ™˜ 
        while(st.hasMoreTokens()){
            // st์˜ ๊ณต๋ฐฑ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ ํ›„ str1์— ๋Œ€์ž…ํ•œ๋‹ค.
            String str1 = st.nextToken();
            // str1์„ int๋กœ ํ˜•๋ณ€ํ™˜ ํ›„ totalNum์˜ ๊ฐ’๊ณผ ๋”ํ•œ ๊ฐ’์„ totalNum์— ์žฌ๋Œ€์ž…ํ•œ๋‹ค
            totalNum += Integer.parseInt(str1);
        }

        // totalNum ์ถœ๋ ฅ
        System.out.println(totalNum);
    }
}

 
 
 

ํ•ด๋‹น ์ฝ”๋“œ๋กœ ์ œ์ถœํ–ˆ์„ ๋•Œ 
๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ NumberFormat (java.lang.NumberFormatException) ๊ฐ€ ๋ฐœ์ƒ.
 
 
 
NumberFormat ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋Š” ๋ฌธ์ž์—ด์„ ์ˆ˜๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ
๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ํ™•์ธ๋๋‹ค.
 
1. ๋ฌธ์ž์—ด์„ intํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•  ๋•Œ ํ•˜๋‚˜์˜ ์ •์ˆ˜๋กœ ๋‚˜์˜ค์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
์˜ˆ ) 1 2 -> ์ •์ˆ˜ ํ•˜๋‚˜๋กœ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์—†๋‹ค
 
2. ์ž๋ฃŒํ˜•์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜ ํ•ด๋‹น ์ž๋ฃŒํ˜•์œผ๋กœ ๋ฒ—์–ด๋‚  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ
 
 
 
 
์—๋Ÿฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ 
https://help.acmicpc.net/judge/rte/NumberFormat

๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ (NumberFormat)

NumberFormatjava.lang.NumberFormatException์€ ๋ฌธ์ž์—ด์„ ์ˆ˜๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค.import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedRea

help.acmicpc.net

 
 

 
 
 
Interger๋กœ ํ˜•๋ณ€ํ™˜ ํ•  ๋•Œ Interger ๋ฒ”์œ„ ๋ณด๋‹ค ๊ฐ’์ด ์ปค์ ธ ์ƒ๊ธฐ๋Š” ์˜ค๋ฅ˜๋กœ ํ™•์ธ.
๋”ฐ๋ผ์„œ int๊ฐ€ ์•„๋‹Œ long์œผ๋กœ ํ˜•๋ณ€ํ™˜์‹œ์ผœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค.
 

import java.io.*;
import java.util.StringTokenizer;

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

        BufferedReader num = new BufferedReader(new InputStreamReader(System.in));
        String str = num.readLine();

        StringTokenizer st = new StringTokenizer(str);

        long totalNum = 0;

        while(st.hasMoreTokens()){
            String str1 = st.nextToken();
            totalNum += Long.parseLong(str1);
        }

        System.out.println(totalNum);
    }
}

 
 
 

 

๋ฐ˜์‘ํ˜•