Archives
Recent Posts
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
관리 메뉴

개발도생's Blog

[백준][Java] 25494_단순한 문제 (Small) 본문

BaekJoon

[백준][Java] 25494_단순한 문제 (Small)

개발도생 2023. 1. 28. 19:10

[백준] 25494_단순한 문제 (Small) 문제

 

 

25494번: 단순한 문제 (Small)

세 양의 정수 $a$, $b$, $c$가 주어질 때, 다음 조건을 만족하는 정수 쌍 $(x, y, z)$의 개수를 구하시오. $1 \le x \le a$ $1 \le y \le b$ $1 \le z \le c$ $(x\,\bmod\,y) = (y\,\bmod\,z) = (z\,\bmod\,x)$ $(A\,\bmod\,B)$는 $A$를 $B$

www.acmicpc.net


25494, 단순한 문제 (Small) 문제


문제의 제목처럼 간단한 함수로 처리할 수 있는 문제였다.

 

문제를 읽어보면 식이 어느 정도 떠오르는 문제다.

 

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));
		
		int N =Integer.parseInt(br.readLine());
		
		int result = 0;
		
		for(int i = 0; i < N; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			int a =Integer.parseInt(st.nextToken());
			int b =Integer.parseInt(st.nextToken());
			int c =Integer.parseInt(st.nextToken());
			
			int temp = Math.min(a,b);
            result = Math.min(temp,c);
            System.out.println(result);
			
		}
	}
}

 

먼저 입력 값을 받아와야 하기 때문에 BufferedReader 객체를 사용했다.

 

[Java][Class] Bufferedreader

코딩 테스트 문제들을 풀다가 우연히 알게 된 Bufferedreader 객에 대해서 공부해봤다. Bufferedreader Class는, 이름과 같이 버퍼를 사용하는 클래스다. 일반적으로 알고 있던 Scanner Class는 사용자가 값을

nan-o-nuel-do.tistory.com

버퍼에 저장된 값은 정수 타입의 변수에 Integer.parseInt 메서드형 변환 시켜 저장해 주었고, 

 

저장된 값은 반복(for)문의 조건식으로 사용했다.

 

두번 째 줄부터 개행을 구분해줘야 하는 값들이기 때문에 StringTokenizer객체를 반복문 내부에서 사용했다.

 

[Java][Class] StringTokenizer

평소 유용하게 사용하고 있는 객체 StringTokenizer를 공부해봤다. StringTokenizer Class는, 단순하게 표현한다면 문자들을 토큰화 시켜준다고 이해하면 편할 것 같다. 토큰으로 분리된 문자들을 StringToken

nan-o-nuel-do.tistory.com

 

한 번의 식이 끝나면 초기화가 돼야 하기 때문에 반복문 내부에 선언해 주었는데, 선언은 반복문 밖에서 하고 초기화만 내부에서 해주어도 괜찮다.

 

그 이후 Math Class의 최솟값을 구해주는 min 메서드를 사용했고, 

 

정수 타입에 형 변환된 값들 중에 최솟값을 구해 반복문 외부에 선언해 둔 result 변수에 저장되도록 했다.

 

result 변수에 저장된 값을 출력해 주면 문제가 풀린다.


 

입력해야 되는 값
출력 값


위와 같은 코드로 제출했을 때,

맞았습니다!!

'BaekJoon' 카테고리의 다른 글

[백준][Java] 16600_Contemporary Art  (0) 2023.01.31
[백준][Java] 20353_Atrium  (0) 2023.01.30
[백준][Java] 16204_카드 뽑기  (6) 2022.12.22
[백준][Java] 16199_나이 계산하기  (0) 2022.12.22
[백준][Java] 15963_CASIO  (1) 2022.12.20
Comments