Algorithms/백준

[백준] '럭비 클럽' - Java

LEFT 2024. 6. 1. 16:39

<문제 제시>

올 골드 럭비 클럽의 회원들은 성인부 또는 청소년부로 분류된다.

나이가 17세보다 많거나, 몸무게가 80kg 이상이면 성인부이다.

그 밖에는 모두 청소년부이다. 클럽 회원들을 올바르게 분류하라.


<문제 해결 과정>

입력받는 값들 중 이름을 제외한 2,3번째 값을 if문 처리하여 조건에 맞게 성인부와 청소년부로 구분하고

StringBuilder에 저장 후 최종 출력해야겠다고 생각했다.


<Answer 1>

while(true) {
			
    s = br.readLine();

    if(s.contains("#") && s.contains("0")) break;

    String[] st = new String[3];
    st = s.split(" ");

    if(Integer.parseInt(st[1]) > 17 || Integer.parseInt(st[2]) >= 80) {
        sb.append(st[0]).append(" ").append("Senior").append("\n");
    }
    else {
        sb.append(st[0]).append(" ").append("Junior").append("\n");
    }
}

입력받은 문자열이 "#"이나 "0"을 포함하면 무한반복문을 멈춘다. >> 포함 처리 : contains()

성인부와 청소년부를 구분해서 출력할 문자열배열을 만들고 Senior와 Junior로 구분해주었다.


<전체 코드>

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

public class q_2083_rugby {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		
		String s = "";
		
		while(true) {
			
			s = br.readLine();
			
			if(s.contains("#") && s.contains("0")) break;
			
			String[] st = new String[3];
			st = s.split(" ");
			
			if(Integer.parseInt(st[1]) > 17 || Integer.parseInt(st[2]) >= 80) {
				sb.append(st[0]).append(" ").append("Senior").append("\n");
			}
			else {
				sb.append(st[0]).append(" ").append("Junior").append("\n");
			}
		}
		
		System.out.println(sb);
	}
}

StringBuilder의 활용과 문자열 배열을 하나 더 만들어 성인부, 청소년부를 구분해야하는 과정이 중요하였다.


<문제 링크>

https://www.acmicpc.net/problem/2083