목록문제 풀이 (47)
코린이 탈출기
문제 풀어보기 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 문제에서 요구하는 대로 구현하면 된다. 어렵지 않은 문제 ! 그래 솔직히 첫 문제부터 어려우면 안되지.. 7문제나 내면서 ㅠ ㅠ 궁시렁 C++은 string에 대한 함수가 너무 없어서 javascript로 풀어보았다 요새 IR센터 근무하면서 계속 자바스크립트를 다루다 보니 어느새 손에 익숙해져서,, ㅎ 크롬으로 디버깅 돌리는 게 너무 편해서 좋다. 알아서 코드 옆에 변수 값 어떻게 바뀌는지 다 보여준다 ~ 문자열을 제일 앞에서부터 정해진 길이..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/PO7C6/btqHjqEIBUk/36tAAdV0J7S7Eu5Dj0hYK1/img.png)
문제 풀어보기 코딩테스트 연습 - 가사 검색 programmers.co.kr TRIE 자료구조를 이용하여 해결하는 문제 일반적인 선형 자료구조로는 절 대 해결 불가 ~ 무조건 시간 초과다 1. 와일드카드('?')가 키워드의 접두사 혹은 접미사에 나타나므로, 순방향 트라이/ 역방향 트라이(단어 순서의 방향을 의미함) 두 개를 만들어 주어야 한다. 2. words 벡터의 각 string을 순방향 트라이에 insert 해준다. 또한, 각 string을 reverse 하여 역방향 트라이에 insert 해준다. 3. queries 벡터의 각 키워드의 와일드카드가 접두사/ 접미사에 나타나는 지 확인하고 그에 맞는 트라이에서 키워드 별로 매치된 단어의 수를 구한다. 3-1. Find 함수에서 '?'가 나오기 전까지 ..
문제 바로가기 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net 봄, 여름, 가을, 겨울이 지나면서 수행해야하는 일이 다 다르다. 네가지 일을 모두 끝내면 한 해가 지난 것인데, 입력으로 주어진 해만큼 수행한 뒤 땅에 남아있는 나무의 수를 구하면 된다. 땅 한 칸에는 다른 문제들과는 좀 다르게 여러 나무들이 심겨져있을 수 있기 때문에 map이라는 배열의 원소로 땅의 양분(food)과 나무의 나이 vector(tree_age)를 두었다. 나무가 하나 심겨질 때마다, vector에 push_back한..
문제 바로가기 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 흑흑 너무 힘든 문제여따 ㅜ ㅅ ㅜ 애초에 코딩 전에 어떻게 풀 지 생각하는 부분에서 내가 잘못 생각한 게 여러 부분 있었다. 먼저, 나는 빨간 공이 움직일 수 있을 때만 판을 기울인다고 생각했다. 하지만 빨간공이 움직일 공간이 없더라도 파란공이 움직일 수 있으면 그 경우의 수를 고려해주었어야 했다. 두번째, 백트래킹 방식으로 구현할 때 파란공이 구멍에 빠지면 바로 return을 했는데, 이 부분에서..
문제 바로가기 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름�� www.acmicpc.net 문제 미쳤냐.. x y 반대로 돼있다 ㅜㅜㅜ 하.. 너무 헷갈려 !!!! 심지어 첫 예시가 d1 = 1, d2 = 1이여서 그냥 해보면 x, y가 바껴있다는 걸 모른다.. 분명 다 맞게 했는데 왜 안되는지 엄청 헤맸는데 ㅠㅅㅠ 풀기전에 예시로 나와있는 거 다 보고 해야겠다.. 어렵지는 않은데 느므 더럽다 이런문제 싫다 진짜... #include #include #include #include using namespace std; int N; int p..
문제 바로가기 3190번: 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. www.acmicpc.net 푸는데 1시간 20분 걸렸다. 더 줄일 수 있었는데 이상한데서 시간 낭비했다 ㅠㅠ 뱀의 방향 전환정보에서 X와 C의 의미를 잘 생각해야한다. X초가 지난 후에 C의 방향을 전환하기 때문에 시작은 0초부터이고 마지막에는 현재 시간부터 (현재시간 + 최대 N길이)동안 move_snake를 한 번 더 해주어야한다. #include #include #include using namespace std; int N, K, L; int map[101][101]; in..
문제 바로가기 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 �� www.acmicpc.net 스택으로 푼다는 힌트를 받고 풀었다 그냥 봤을 땐 감 1도 안왔는데.. 그림으로 여러 경우를 그려서 생각해보니 현재의 탑 길이보다 크면서 가장 가까운 거리에 있는 탑에 레이저가 닿는다는 사실을 알 수 있었다. 그래서 스택에 탑의 길이와 번호를 함께 넣어주는데, 그 전에 스택을 탐색하며 현재 탑의 길이보다 짧은 탑은 쓸모 없는 정보이기 때문에 pop해준다. 현재 탑보다 길이가 긴 탑을 만나면 그 때 그 탑의 번호를 출력하고, 현재 탑의 길이를..
문제 바로가기 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 문제는 매우 쉽지만 최종적인 값이 int형에 저장이 될 지 생각을 해봐야 한다. 시험장의 개수가 최대 1,000,000개이고 응시자 수의 최대가 1,000,000명이므로 감독관의 수는 int형보다 더 큰 자료형에 담아주어야 한다. long long 자료형을 사용했다. #include #include using namespace std; int people[1000001]; int N, B, C..