문제 https://www.acmicpc.net/problem/16926 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net 크기가 NxM인 배열을 한 줄씩 나눠서 R번 회전한 결과를 출력하는 문제였다. 문제 풀이 배열이 최대 300 x 300 크기고, 돌리는 횟수도 최대 1000번이라 실제로 다 돌려도 최대 90000000이어서 아슬아슬하게 제한 시간을 통과할 수는 있을 것 같았다. 하지만 다른 방법을 이용해 풀었다. ..
문제 https://www.acmicpc.net/problem/22234 22234번: 가희와 은행 가희는 창구가 하나인 은행을 운영하고 있습니다. 가희의 은행이 영업을 시작했을 때, 대기 줄에는 손님이 N명 있습니다. [그림 1] 카운터 직원과 N명의 손님 x번 손님에 대한 정보는 x번 손님의 www.acmicpc.net 1초마다 현재 처리하고 있는 고객의 id를 출력하는 문제였다. 손님들은 순서대로 줄을 서 있으며 한 번에 한 손님에게 할당할 수 있는 시간이 정해져있다. 할당된 시간이 끝나면 시간이 남은 손님일 경우에는 줄의 맨 뒤로 간다. 문제 풀이 queue를 이용해 풀 수 있었는데, 이때 queue에 넣는 순서가 중요하다. 영업 이후에 들어온 손님은 들어온 시간까지 알아야 하기 때문에 구조체를 ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 플레이 횟수가 더 많은 장르의 음악 중 상위 2개 음악씩 뽑아 플레이 리스트를 만드는 문제였다. 문제 풀이 레벨 3의 문제여서 어려울 줄 알았는데 생각보다 쉬웠다. map에 저장하고.. vector 정렬만 해주면 끝! 별다른 오류도 없었다. 하하. 코테 준비를 하면서 프로그래머스의 알고리즘 고득점 kit의 문제를 푸는 중인데 이 문제로 해시 문제는 다 풀었다. 우하하 #include #inc..
문제 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net map에서 주사위를 굴려 윗면을 출력하는 문제였다. 문제 풀이 x,y를 가로세로로 정해놓고 문제를 풀지 말것!! 세로가로인 문제도 정말 많은데 항상 가로세로로 놓고.. 풀고 보니 x, y를 바꿔서 생각해야 하는 문제.. 그리고 꼭 규칙을 찾으려고 하지도 말자! #define _CRT_SECURE_NO_WARNINGS #incl..
문제 https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 필요한 감독관 수의 최솟값을 구하는 문제였다. 문제 풀이 각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다. 이 문구에서 나는 총감독관은 1명까지 있을 수 있으니 0명도 괜찮다고 이해하고 풀어서 예제 케이스가 다른 값이 나왔다. 예제 케이스를 풀기 위해서는 총감독관은 항상 1명씩 있어야 한다. 해당하..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건에 해당하는 사람의 수를 구하는 문제였다. 문제 풀이 완전탐색을 하게 될 경우 5000 * 100000번의 연산을 해야 해서 절대 시간 안에 못 풀 것 같았다. 점수순으로 정렬 후 조건으로 찾아볼까도 했는데 많은 시간이 줄어들 것 같진 않았다. 그래서 5차원 벡터를 MAP 처럼 만들어 사용했다. 먼저 info의 정보를 분해해서 벡터에 저장하고, query 또한 같은 방법으로 분해해서 어떤..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 입차된 차량과 출차된 차량의 시간을 계산해 차량별 주차 요금을 계산하는 문제였다. 문제 풀이 먼저 records 벡터를 하나씩 뜯어 입차 차량, 출차 차량, 차량별 시간 map에 저장했다. 이때 처음 들어온 차량이면 answer를 위해 answerCarOrder에 push했고 출차 차량인 경우에는 시간을 계산해 timeMap에 저장했다. 모든 records를 저장한 후, 출차 기록이 없는 차..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자와 숫자가 혼합된 형태의 문자열을 숫자로 변환하는 문제였다. 문제 풀이 문자열과 숫자를 키-밸류 값으로 가지는 map을 만들어 풀었다. string을 한 글자씩 검사하며 먼저 숫자인지 확인한 후, map에 있는 string일 경우 숫자를 answer에 더해줬다. #include #include #include using namespace std; map num; void init_map(..