문제설명
투표가 끝난 뒤에는 개표를 해야 한다. 일반적으로 개표는 칠판을 사용하며, 한 표가 나올 때마다 한 획을 추가로 긋는 방식을 사용한다.
이 문제에서는 다음과 같은 방식으로 개표를 진행한다.
- 모든 후보자는 0표, 즉 아무것도 그려져 있지 않는 상태로 시작한다.
- 어떤 후보자가 한 표를 받을 때마다, "|"를 맨 뒤에 그린다.
- 단, 그 후보자가 5표를 받을 때마다, "|"를 그리는 대신 이미 있던 개의 "|"에 가로줄을 그어 "++++"를 만든다. 이후 1칸의 공백을 뒤에 추가한다.
예를 들면, 12표를 받은 후보의 경우 칠판에는 "++++ ++++ ||"가 적히게 된다.
제약조건
1 ≤ T ≤ 100
1 ≤ n ≤ 100
입력형식
첫 번째 줄에 후보의 수 T가 주어진다.
두 번째 줄부터 T개의 줄에 걸쳐, 각 후보가 받은 표의 수 n이 주어진다.
출력형식
각 후보에 대해, 칠판에 그려지게 되는 결과를 한 줄에 하나씩 출력한다.
예제
입력예제1
3 12 1 5
출력예제1
++++ ++++ ||
|
++++
입력예제2
2 9 10
출력예제2
++++ ||||
++++ ++++
제출답안
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
//T는 후보자 수
//n은 각 후보가 받은 표의 수
Scanner sc = new Scanner(System.in);
int T = Integer.valueOf(sc.next());
String answer;
for(int i=0; i<T;i++){
int n = Integer.valueOf(sc.next());
int lineCnt = n%5;
int plusCnt = n/5;
answer = "++++ ".repeat(plusCnt) + "|".repeat(lineCnt);
System.out.println(answer.trim());
}
sc.close();
}
}
회고
- 새로 알게 된 것
- 문자열 반복 .repeat(반복할 횟수)
- 문자열 앞뒤로 공백 제거 .trim()
- 에러핸들링
- 처음에 trim()없이 했을때 마지막에 '++++'만 있는 경우 끝에 공백이 추가돼서 정답이 불일치 됨.
반응형
'JAVA > 코딩테스트' 카테고리의 다른 글
Softeer 연습문제(JAVA) Level 1. [한양대 HCPC 2023] Tren del Fin del Mundo (0) | 2024.10.22 |
---|---|
Softeer 연습문제(JAVA) Level 1. 연탄 배달의 시작 (0) | 2024.10.21 |
Softeer 연습문제(JAVA) Level 1. 주행거리 비교하기 (0) | 2024.10.21 |
Softeer 연습문제(JAVA) Level 1. 근무시간 (0) | 2024.10.21 |
Softeer 연습문제(JAVA) Level 1. A+B (2) | 2024.10.21 |
댓글