[BOJ] 16676 근우의 다이어리 꾸미기

GirlFriend-Yerin·2020년 8월 27일
0

알고리즘

목록 보기
103/131

Note

다이어리를 꾸미려는 근우를 위해 스티커 팩을 몇 개 사야하는지 알려주자

결과값 = 문자열 길이 라고 생각하면 함정이 빠지게 된다.
N을 출력한다면 문제가 없지만 0 ~ N 까지이기 때문에 각 자리 숫자가 최대로 중복되는 경우를 생각 해야 한다.
처음으로 각 자리가 중복 가능한 수는 모든 자리가 1인 경우이기 때문에 모든 자리의 수가 1인 경우의 수보다 작은 경우라면 결과값에서 -1을 해줘야한다.

알고리즘

  1. 문자열을 입력 받는다.
  2. 문자열의 길이를 계산한다.
  3. 문자열의 길이만큼 1이 포함되는 경우가 존재하는지 판단한다.
  4. 3의 조건을 만족하면 문자열의 길이를, 만족하지 않으면 문자열 길이 -1을 출력한다.

소스코드

#include <iostream>
#include <cstring>

using namespace std; 

char input[11] = {};

bool isUnder()
{
	if (input[0] < '2')
	{
		for (int i = 1; input[i] != '\0'; i++)
			if (input[i] > '2')
				break;
			else if (input[i] == '0')
				return true;
	}

	return false;
}

int main()
{
	cin >> input;

	int len = strlen(input);

	cout << len - isUnder();

	return 0;
}

2019-03-31 23:23:25에 Tistory에서 작성되었습니다.

profile
개발할때 가장 행복한 개발자입니다.

0개의 댓글