본문 바로가기

알고리즘/🥉 브론즈

백준 1284 집 주소 자바 풀이

728x90

난이도 : 브론즈3

풀이일 : 12122

https://www.acmicpc.net/problem/1284

 

1284번: 집 주소

재석이는 대문에 붙이는 (주소를 나타내는) 호수판 제작업체의 직원이다. 고객에게 전달할 호수판은 숫자와 숫자 사이 그리고 왼쪽 오른쪽으로 적당히 여백이 들어가 줘야하고 숫자마다 차지하

www.acmicpc.net


링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐


풀이 코드

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 result = 1;
			String temp = br.readLine();
			int nums = temp.length();
			if (nums == 1 && temp.charAt(0) == '0') {
				break;
			}

			for (int i = 0; i < nums; i++) {
				if (temp.charAt(i) == '1') {
					result += 3;
				}
				else if (temp.charAt(i) == '0') {
					result += 5;
				}
				else {
					result += 4;
				}
			}
			System.out.println(result);
		}
	}
}
  • Scanner 대신 BufferedReader를 사용해서 입력 속도 개선
  • 입력으로 0이 들어오기 전까지 반복
  • result : 총 필요한 칸 수로, 기본 좌측 여백을 포함하여 1부터 시작
  • 숫자에 따라 필요한 칸수 + 여백 한 칸 더해주기

느낀점

  • BufferedReader를 사용하는게 파이썬에서 처음 sys.stdin.readline을 사용할 때처럼 어색하게 느껴지지만 금방 적응이 되겠지
  • 자바를 다 잊어버려서 기억 하기 위해 조금씩 풀고 있는데 얼른 다시 실버 문제 풀게 되면 좋겠다.
  • 이제 프로젝트도 여유로워졌고, 통학도 없어졌으니까 다시 꾸준히 작성해봐야지.