문자열

    [BOJ] 22351 - 수학은 체육과목 입니다 3

    문제 출처 [BOJ] 22351 - 수학은 체육과목 입니다 3 풀이 주어진 문자열을 잘라서 순차적으로 증가하는지 확인해주고 해당되는 경우를 출력해주면 되는 문제였습니다. 순차적으로 증가하는 경우를 확인해 준 방법은 브루트포스였습니다. 증가하는 경우는 이렇게 나뉠 수 있습니다. 한자리 -> 한자리 ex) 12 => 1 -> 2 한자리 -> 두자리 ex) 910 => 9 -> 10 두자리 -> 두자리 ex) 1011 => 10 -> 11 두자리 -> 세자리 ex) 99100 => 99 -> 100 세자리 -> 세자리 ex) 299300 => 299 -> 300 시작하는 수가 몇 자리인지 알 수 없기 때문에 한자리, 두자리, 세자리 이렇게 늘려가보면서 모든 경우를 확인해주어야 합니다. 그리고 각 자리수는 한자..

    [BOJ] 9519 - 졸려

    문제 출처 [BOJ] 9519 - 졸려 풀이 눈을 깜빡인 횟수를 모두 돌아주어 문자열의 상태를 알아낸다면 시간초과가 날 것입니다. 그래서 다른 방법을 찾아야 합니다. 문제의 문자열이 바뀌는 규칙대로 쭉 써보다보면 규칙을 찾을 수 있습니다. 위의 사진과 같이 원래의 문자열로 돌아오는 주기가 있고 위의 예제는 5번 눈을 깜빡이면 다시 원래의 상태로 돌아오게 됩니다. 그렇다면 X를 주기만큼 나눈 나머지 값만큼 문자열을 바꿔준다면 정답을 구할 수 있습니다. 이 때 나머지 값만큼 문자열을 바꿔줄때는 정해진 규칙의 반대로 문자열을 바꿔주어야 눈을 깜빡이기 전 원래의 문자열을 찾을 수 있습니다. 코드 small-j/Algorithm Contribute to small-j/Algorithm development by ..