전체 글

벌집 모양의 방들이 존재할 때 주어진 번호의 방에 들어가기 위해 몇 번 방을 지나가야하는지를 구하는 문제이다. 벌집 모양은 6각형으로 형성되어있고, 일정한 규칙을 파악하면 쉽게 풀 수 있다. 일단 동일한 횟수로 지나가야 들어갈 수 있는 방들의 집합을 구분해본다. Group 1: 1번 1번 방 / 1번 / 1개 = 6 x 0 Group 2: 2~7번 방 / 2번 / 6개 = 6 x 1 Group 3: 8~19번 방 / 3번 / 12개 = 6 x 2 Group 3: 20~37번 방 / 4번 / 18개 = 6 x 3 Group 3: 38~61번 방 / 5번 / 24개 = 6 x 4 Group 3: 62~91번 방 / 6번 / 30개 = 6 x 5 각 그룹의 개수는 6의 배수로 나뉘는 일정한 패턴을 가지고 있다..
흔한 스택 문제 #include #include #include using namespace std; int main(){ int N; cin >> N; vector s; for(int i = 0; i > temp; s.push_back(temp); } for(int i = 0; i < N; i++){ stack VPS; for(int j = 0; j < s[i].size(); j++){ if(VPS.empty() || s[i][j] == '(') VPS.push(s[i][j]); if((s[i][j] == ')') && (VPS.top() == '(')){ VPS.pop(); } } cout
영화감독 숌은 자신의 영화 제목을 666이 들어가는 숫자로 정하기로 하였는데, 문제는 666이 등장하는 N번째 영화제목은 무엇인지 맞추는 것이었다. 일단 while(true)문으로 무한 반복으로 접근하긴 했는데, 이렇게 접근해도 될지는 모르겠다.. 첫 번째 인덱스는 666부터 시작해서, 하나씩 늘려가며 "666"과 일치하는 숫자가 등장하는지 비교하였다. 만약 등장한다면 몇 번째 등장한 것인지 N과 비교하여 맞다면 무한 반복문을 멈추고 나온다. #include #include using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; string subject = "66..
문자열에서 첫 글자부터 한 글자씩 검사를 하면서 만약 다음 문자가 자신과 같다면 넘어가고, 자신과 같지 않다면 나머지 문자열에서 자신과 같은 문자가 발견될시 그룹 문자가 아닌 것으로 판명한다. 전체 문자열을 종료없이 다 돈다면 그룹 문자로 판명한다. #include #include using namespace std; bool check(string s){ int position = 0; for(int i = 0; i > N..
오뚜깅
오뚜깅