본문 바로가기

Algorithm/Math

(C++) - 백준(BOJ) 1284번 : 집 주소

반응형

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

 

1284번: 집 주소

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

www.acmicpc.net

 

간단한 산술 문제였습니다.

 

📕 풀이방법

📔 입력 및 초기화

 문자열 s가 "0"일 때까지 입력합니다.

📔 풀이과정

 1. 문제에서 모든 형태의 문자열은 s.size() + 1 만큼의 간격을 가지게 됩니다. 따라서 이는 변수 width에 고정적으로 더해집니다.

 

 2. 이를 제외한 간격은 글씨자체의 간격뿐이므로 1일 때는 2, 0일 때는 4, 이외의 숫자에는 3을 문자 하나씩 확인해가며 출력할 정답 변수 width에 더해줍니다.

 

📔 정답출력

width를 출력합니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
string s;
int main(){
    while(1){
        int width;
        cin >> s;
        if(s == "0") break;
        width = s.size() + 1;
        for(int i = 0; i < s.size(); i++){
            if(s[i] == '1') width += 2;
            else if(s[i] == '0') width += 4;
            else width += 3;
        }
        cout << width << '\n';
    }
}