문제 링크
주의사항
- JAVA를 사용하여 프로그램을 사용하였습니다.
- 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{
public static void main(String[] args){
}
}
문제 설명
접근 방법
이 문제에 핵심
1. 그릇에 높이는 10cm입니다.
2. 그릇을 쌓아올리면 +5cm, 그릇을 반대방향으로 쌓으면 +10cm 높이가 올라갑니다.
3. 입력받은 그릇을 순서대로 쌓았을 때 높이를 결과로 출력합니다.
알고리즘 진행 순서.
1. 입력된 그릇의 정보를 저장합니다.
2. 그릇을 순서대로 쌓아오는 과정을 진행합니다.
3. 쌓은 과정을 종료한 뒤 높이를 결과로 출력합니다.
그릇 쌓기
이전에 쌓인 그릇의 형태에 따라 높이를 더합니다.
현재 쌓으려는 그릇 = 이전 쌓은 그릇
+5cm
현재 쌓으려는 그릇 != 이전 쌓은 그릇
+10cm
예제입력 2.
1. 입력된 그릇의 정보를 저장합니다.
()()()))(
※첫 번째 그릇은 이전 그릇이 없기 때문에 무조건 10cm의 높이로 쌓아집니다.
2. 그릇을 순서대로 쌓아오는 과정을 진행합니다.
이전 그릇 : 없음
( : 10cm
이전 그릇 : (
() : 10 + 10
이전 그릇 : ()
( : 10 + 10 + 10
이전 그릇 : ()(
) : 10 + 10 + 10 + 10
이전 그릇 : ()()
( : 10 + 10 + 10 + 10 + 10
이전 그릇 : ()()(
) : 10 + 10 + 10 + 10 + 10 + 10
이전 그릇 : ()()()
) : 10 + 10 + 10 + 10 + 10 + 10 + 5
이전 그릇 : ()()())
) : 10 + 10 + 10 + 10 + 10 + 10 + 5 + 5
이전 그릇 : ()()()))
( : 10 + 10 + 10 + 10 + 10 + 10 + 5 + 5 + 10
3. 쌓은 과정을 종료한 뒤 높이를 결과로 출력합니다.
10 + 10 + 10 + 10 + 10 + 10 + 5 + 5 + 10 = 80
80을 결과로 출력합니다.
- BufferedReader를 사용하여 입력되는 정보를 저장합니다.
- for문을 통해서 그릇을 쌓는 과정을 진행합니다.
- 그릇을 쌓는 과정 종료 후 높이를 결과를 BufferedWriter 저장하였습니다.
- BufferedWriter에 저장된 결과값을 출력하였습니다.
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
//입력값 처리하는 BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//결과값 출력하는 BufferedaWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String input = br.readLine(); //입력되는 그릇 정보 저장
//첫 번째 그릇 높이 놓기
int answer = 10;
char previous = input.charAt(0);
//그릇을 쌓는 과정 진행
for(int i=1;i<input.length();i++){
//이전과 동일하지 않은 그릇을 쌓을 때
if(previous != input.charAt(i)){
previous = input.charAt(i);
answer += 10;
}else //이전과 동일한 그릇을 쌓을 때
answer += 5;
}
bw.write(answer + ""); //그릇을 쌓은 높이 BufferedWriter 저장
bw.flush(); //결과 출력
bw.close();
br.close();
}
}
'백준' 카테고리의 다른 글
[백준] 알고리즘 분류(문자열,JAVA)10824번, 네 수 (0) | 2022.09.24 |
---|---|
[백준] 알고리즘 분류(문자열,JAVA)9935번, 문자열 폭발 (0) | 2022.09.23 |
[백준] code.plus(브루트 포스 Part 2,JAVA)16987번, 계란으로 계란치기 (0) | 2022.09.21 |
[백준] 알고리즘 분류(문자열,JAVA)15829번, Hashing (2) | 2022.09.20 |
[백준] 알고리즘 분류(문자열,JAVA)17413번, 단어 뒤집기 2 (0) | 2022.09.19 |
댓글