<문제 제시>
올 골드 럭비 클럽의 회원들은 성인부 또는 청소년부로 분류된다.
나이가 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
'Algorithms > 백준' 카테고리의 다른 글
[백준] '공 넣기' - Java (0) | 2024.06.01 |
---|---|
[백준] '공 바꾸기' - Java (0) | 2024.06.01 |
[백준] '꼬마 정민' - Java (0) | 2024.06.01 |
[백준] '모음의 개수' - Java (0) | 2024.06.01 |
[백준] '피보나치 수 5' - Java (0) | 2023.07.20 |