본문 바로가기
백준 풀이

[백준/BOJ] - 1436번 c++ 풀이

by 반오십 코린이 2022. 11. 12.
728x90


Key Point

1. 배열에서 '666'이라는 문자열이 존재하는지 확인을 계속 해야한다.

2. 확인이 되면 반복문 탈출하고 다음 숫자를 찾아 떠나야한다.

 

알게 된 문제 풀이법

1. 배열에서 '666'이라는 값이 있는지 어떻게 비교할까를 생각해내지 못하여 풀이를 참고했는데 조건문에 연속적으로 

if (target[j] == '6' && target[j + 1] == '6' && target[j + 2] == '6')

다음과 같이 연속된 배열을 확인하며 해당 안 될 경우 배열속 index값을 +1 하여 다음 배열을 확인할 수 있게 하는 풀이법을 터득하였다.


#include<iostream>
#include<string>
using namespace std;

int main() {
	
	int N;
	int cnt = 0;
	int i = 666;	
	string target;
	cin >> N;

	while (cnt < N) {
		target = to_string(i);
		for (int j = 0; j < target.length() - 2; j++) {
			if (target[j] == '6' && target[j + 1] == '6' && target[j + 2] == '6') {
				cnt++;
				break;
			}
		}
		if (cnt == N)
			cout << target;
		i++;
	}

	return 0;
}
728x90