hoon's bLog

백준 Java 반복문 2739, 10950, 8393, 25304, 25314, 15552, 11021, 11022, 2438, 2439, 10952, 10951 본문

코딩테스트/백준

백준 Java 반복문 2739, 10950, 8393, 25304, 25314, 15552, 11021, 11022, 2438, 2439, 10952, 10951

개발한기발자 2023. 4. 10. 09:44
반응형

문제출처 : https://www.acmicpc.net/step/3

 

반복문 단계

코딩 공부를 잘 하여 이렇게 long long long long...을 칠판에 적는 일이 없도록 합시다.

www.acmicpc.net


이번 포스팅은 반복문!

반복문 역시 난이도는 ★!

총 12문제 Get it!!!

[2739] 구구단

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        sc.close();

        for (int i = 1; i < 10; i++) {
            System.out.println(a+" * "+i+" = "+ a*i);
        }
    }
}

[10950]  A+B - 3

import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int c = sc.nextInt();

        for (int i = 0; i < c; i++) {
            int a = sc.nextInt();
            int b = sc.nextInt();
            System.out.println(a+b);
        }
        sc.close();
    }
}

[8393] 합

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        sc.close();

        System.out.println(a*(a+1)/2);
    }
}

[25304] 영수증 성공

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));
        StringTokenizer st;

        int X = Integer.parseInt(br.readLine());
        int N = Integer.parseInt(br.readLine());

        int total = 0;
        for (int i = 0; i < N; i++) {
            st = new StringTokenizer(br.readLine());
            total += Integer.parseInt(st.nextToken()) * Integer.parseInt(st.nextToken());
        }

        if (X == total)
            System.out.println("Yes");
        else
            System.out.println("No");


    }
}

[25314] 코딩은 체육과목입니다

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

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

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < n / 4; i++) {
            sb.append("long ");
        }
        
        br.close();
        
        sb.append("int");
        System.out.println(sb);
    }
}

[15552] 빠른 A+B

import java.io.*;
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));
        
        // BufferedReader.readLine() 으로 입력 받음.
        int N = Integer.parseInt(br.readLine());
        
        // 각 StringTokenizer 의 토큰 (분리되어있는 문자)을 반환
        // 반환되는 타입은 String 이므로 Integer.parseInt를 통해 int형으로 변환
        StringTokenizer st;
        for (int i = 0; i < N; i++) {
        	// 주어지는 두 정수는 문자열 분리를 위해 매 반복마다 StringTokenizer 을 생성과 동시에 문자를 입력받음
            st = new StringTokenizer(br.readLine()," ");
            
            // 바꾼 두 토큰을 더해준 값을 BufferedWriter.write() 추가
            bw.write((Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken()))+ "\n");
        }
        //거의 필수적으로 버퍼를 비운 뒤(flush) 닫아줘야함(close).
        br.close();
        bw.flush();
        bw.close();
    }
}

[11021] A+B - 7

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

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());
        StringBuilder sb = new StringBuilder();

        for (int i = 1; i <= N; i++) {
            String str = br.readLine();
            int target = str.indexOf(" ");
            int result = Integer.parseInt(str.substring(0,target)) + Integer.parseInt(str.substring(target + 1));
            sb.append("Case #"+ i + ": " + result+"\n");
        }

        br.close();
        System.out.println(sb);
    }
}

[11022] A+B - 8

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

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());
        StringBuilder sb = new StringBuilder();

        for (int i = 1; i <= N; i++) {
            String str = br.readLine();
            int target = str.indexOf(" ");
            int result = Integer.parseInt(str.substring(0,target)) + Integer.parseInt(str.substring(target + 1));
            sb.append("Case #"+ i + ": " +str.substring(0,target)+ " + " +str.substring(target + 1)+ " = " + result+"\n");
        }

        br.close();
        System.out.println(sb);
    }
}

[2438] 별 찍기 - 1

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int a = Integer.parseInt(br.readLine());
        for(int i = 0; i < a; i++) {
            for(int j = 0; j < i + 1; j++) {
                sb.append("*");
            }
            sb.append("\n");
        }
        br.close();
        System.out.println(sb);
    }
}

[2439] 별 찍기 - 2

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int a = Integer.parseInt(br.readLine());
        for(int i = 1; i <= a; i++) {
            for(int j = 0; j < a-i; j++) {
                sb.append(" ");
            }
            for (int k = 1; k <= i; k++) {
                sb.append("*");
            }
            sb.append("\n");
        }
        br.close();
        System.out.print(sb);
    }
}

[10952] A+B - 5

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

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        while(true){
            String str = br.readLine();
            int target = str.indexOf(" ");
            int result = 0;
            if (str.substring(0,target).equals("0") && str.substring(target+1).equals("0")){
                break;
            }else result = Integer.parseInt(str.substring(0,target)) + Integer.parseInt(str.substring(target + 1));
            sb.append(result+"\n");
        }
        br.close();
        System.out.print(sb);
    }
}

[10951] A+B - 4

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();
        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");
        }
        
        br.close();
        System.out.print(sb);
    }
}

언뜻 코드가 복잡해 보이지만, 로직상으로 크게 깊게 생각해야 하거나 복잡한 부분은 없었다.

다만 입출력 시 BufferedReader, BufferedWriter, StringBuilder, StringTokenizer 등을 사용하다 보니,

소스가 다소 생소하게 느껴질 수 있다.(라고 나는 처음에 생각이 들었었다...ㅠㅠ)

왜 출력을 이렇게 했는가? 의 부분은 백준 문제 풀이 시 주의 할 점 포스팅을 참고하면 되겠다.

반복문에서 특히 구구단이나, 별 찍기 로직 구성은 단골 중에 단골이니, 익숙해지면 좋을 듯하다.

 

만약 여기서 막히고 어렵다면?!!?!?

아래 링크에서 조건문에 대해서 다시 알아보고 오시면 좋을 듯!

조건문과 반복문 : https://psip31.tistory.com/7

 

[Java] 제어문(조건문, 반복문)

안녕하세요. 이번 포스팅은 제어문에 대해서 알아보도록 하겠습니다. 제어문은 크게 조건문, 반복문으로 나뉩니다. 조건문 : 조건식과 문장으로 구성(주로 if, switch case문) 반복문 : 반복적인 작

psip31.tistory.com

 

728x90
반응형