Archives
Recent Posts
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
관리 메뉴

개발도생's Blog

[백준][Java] 1284_집 주소 본문

BaekJoon

[백준][Java] 1284_집 주소

개발도생 2023. 4. 21. 14:34

[백준] 1284_집 주소



대문에 붙이는 주소판(호수판) 제작을 위해 입력된 값으로 규격 사이즈에 맞게 출력해 주면 되는 것이다.

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

public class Main {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		
		while(true) {
			int sum = 0;
			String num = br.readLine();
			if(num.charAt(0) == '0') {
				break;
			}
			
			for(int i = 0; i < num.length(); i++) {
				sum++;
				if(num.charAt(i) == '1') {
					sum += 2;
				} else if(num.charAt(i) == '0') {
					sum += 4;
				} else {
					sum += 3;
				}
				
				if(i + 1 == num.length()) {
					sum++;
				}
			}
			System.out.println(sum);
		}
	}
}

먼저 사용자가 값을 입력할 수 있도록 BufferedReader Class를 사용했다.

 

[Java][Class] Bufferedreader

코딩 테스트 문제들을 풀다가 우연히 알게 된 Bufferedreader 객에 대해서 공부해봤다. Bufferedreader Class는, 이름과 같이 버퍼를 사용하는 클래스다. 일반적으로 알고 있던 Scanner Class는 사용자가 값을

nan-o-nuel-do.tistory.com

 

while 반복문 내부에 객체의 Method를 통해 사용자 입력 값을 받아오도록 해주고, 

 

규격을 연속적으로 값을 더해줘야 하기 때문에 정수 타입의 변수를 '0'으로 초기화시켜 선언해 주었다.

 

먼저 문제에서 요구된 내용은 이렇다.

 

숫자 '1'은 2cm의 규격으로 지정 돼 있고, '0'은 4cm, 나머지 숫자들은 3cm이다.

 

그래서 문자열로 입력된 값을 charAt Method를 통해 확인해 주고,

 

같은 숫자가 입력되었을 때 각각의 규격이 sum 변수에 저장되도록 조건식을 만들었다.

 

그리고 숫자들 사이에는 1cm의 간격이 있다고 했으니, 조건문을 확인하기 전 1cm을 먼저 sum의 변수에 저장되도록 했다.

 

num 문자열의 길이와 i + 1의 길이가 갔다는 것은 입력 값의 끝이라는 내용이기 때문에 마지막 숫자 뒤에도 1cm의 간격을 추가시킬 수 있었다. 



위와 같은 코드로 제출했을 때,

정답입니다.

 

'BaekJoon' 카테고리의 다른 글

[백준][Java] 10480_Oddities  (0) 2023.04.13
[백준][Java] 9772_Quadrants  (4) 2023.04.11
[백준][Java] 6887_Squares  (0) 2023.03.31
[백준][Java] 6825_Body Mass Index  (0) 2023.03.28
[백준][Java] 5358_Football Team  (0) 2023.03.20
Comments