안녕하세요
이번 포스팅은 Cos Pro 1급 java 3차 기출 문제 중 5번 문제인 전광판 문구 출력을 다뤄보겠습니다.
□ 문제설명
핸드폰 화면에 문구를 출력해주는 전광판 어플이 있습니다. 문구는 "happy-birthday"로 설정하였습니다. 전광판 어플은 다음과 같은 규칙으로 화면에 문구를 출력해 줍니다.
- 어플은 화면에 14자 문구를 출력합니다.
- 문구는 1초에 왼쪽으로 한 칸씩 움직입니다.
- 문구 이외의 부분은 "_"로 표시됩니다.
- 어플은 설정한 문구를 화면에 반복해 출력합니다.
- 어플은 문구가 다 지나가면 설정한 문구를 반복해 보여줍니다.
예를 들어, 처음에는 화면에 "______________"가 보입니다.
3초 뒤에는 화면에 "___________hap"가 보입니다.
14초 뒤에는 화면에 "happy-birthday"가 보입니다.
20초 뒤에는 화면에 "birthday_____"가 보입니다.
28초 뒤에는 모든 문자열이 지나간 후 "______________"가 보입니다.
29초 뒤에는 다시 첫 번째 문자부터 나타나며, "_____________h"가 보입니다.
문구를 담은 문자열 phrases와 초를 담은 second가 매개변수로 주어질 때, 화면에 보이는 문자열을 출력하도록 solution 함수를 작성해 주세요.
단, '_'는 공백을 나타냅니다.
□ 매개변수 설명
문구를 담은 문자열 phrases와 초를 담은 second가 solution 함수의 매개변수로 주어집니다.
- phrases는 "happy-birthday"입니다.
- second는 1 이상 10,000 이하인 자연수입니다.
□ return 값 설명
solution 함수는 화면에 보이는 문자열을 return 합니다.
□ 예시
phrases | second | return |
"happy-birthday" | 3 | "___________hap" |
□ 예시설명
화면 처음상태인 "______________"에서 3초가 지나면 화면에는 글자 3개가 왼쪽으로 옮겨진 상태인 "___________hap"가 보입니다.
※ 문제 접근 방식
(1) 임시로 temp 변수에 "__________________"를 만듭니다.
(2) temp에 파라미터로 받은 문자열을 이어붙입니다.
(3) 파라미터로 받은 second 만큼 for문을 도는데, 임시로 만든 temp에서 맨앞 글자를 받아서 temp 맨 뒤에 붙입니다.
(4) substring을 1부터 받아서 다시 temp에 대입합니다.
(5) for문이 끝난 후, temp에 문자열을 0부터 phrases 길이만큼 잘라서 정답을 리턴해줍니다.
package electricBoardSentence;
public class ElectricBoardSentence {
public static void main(String[] args) {
Main sol = new Main();
String phrases = new String("happy-birthday");
int second = 3;
String ret = sol.solution(phrases, second);
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println("solution 메소드의 반환 값은 \"" + ret + "\" 입니다.");
}
}
class Main {
public String solution(String phrases, int second) {
String answer = "";
String temp = "______________";
temp = temp.concat(phrases);
for (int i = 0; i < second; i++) {
char tmp = temp.charAt(0);
temp += tmp;
temp = temp.substring(1);
}
answer = temp.substring(0, phrases.length());
return answer;
}
}
'코딩테스트 > Cos Pro 1급 Java' 카테고리의 다른 글
[Cos Pro 1급 java] [5차] 문제5) 몬스터 잡기 (0) | 2021.03.22 |
---|---|
[Cos Pro 1급 java] [4차] 문제10) 소수의 세제곱이 몇개가 있나요 - 에라스토테네스의 체 사용 (0) | 2021.03.22 |
[Cos Pro 1급 java] [3차] 문제4) 중복 문자열 이어붙이기 (0) | 2021.03.17 |
[Cos Pro 1급 java] [3차] 문제3) 비숍으로부터 도망쳐 (0) | 2021.03.17 |
[Cos Pro 1급 java] [2차] 문제8) 규칙에 맞는 배열 구하기 (0) | 2021.03.16 |
댓글