전체 글

알고리즘/구현

백준 - 14499

문제 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..

알고리즘/구현

백준 - 13458

문제 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명씩 있어야 한다. 해당하..

알고리즘/동적 계획법 (DP)

백준 - 14501

문제 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 상담을 잡아 최대 이익 구해 출력하는 문제였다. 문제 풀이 문제를 보자마자 dp로 푸는 것은 알았는데, dp 식을 어떻게 짜야 할지 감이 잘 안잡혔다. 다른 사람의 코드를 참고했는데 왜 뒤에서부터 dp를 채울 생각을 못했을까..! 그래도 이번에 뒤에서부터 채우는 dp 문제를 풀어서 다음에는 괜찮을 것 같다. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include using namespace std; ..

알고리즘/DFS BSF

백준 - 14503

문제 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 로봇 청소기의 방향을 돌려가면서 빈 칸을 청소하는 문제였다. 문제 풀이 아무리 생각해도 맞는 풀이인데 결과가 다르게 나와서 다른 사람의 풀이를 참고했더니! 방향 문제였다. x가 상하 y가 좌우인데 x를 좌우, y를 상하로 생각하고 풀어서 문제를 찾는 것에 시간이 꽤 걸렸다... 주의할 것! #define _CRT_SECURE_NO_WARNIN..

알고리즘/DFS BSF

프로그래머스 - 메뉴 리뉴얼

문제 https://school.programmers.co.kr/learn/courses/30/lessons/72411# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메뉴의 조합을 찾아 가장 많이 나온 메뉴를 찾아내는 문제였다. 문제 풀이 설마 이걸 완전탐색으로 풀어야하나..? 아니겠지..? → 완전탐색 아 그냥 완전탐색으로 풀면 안되나; → 완전탐색 아님 매번 sort하기 싫어서 order를 sort한 후 저장해서 넣었더니 테스트 케이스는 모두 맞는데 제출하고 채점하니 0점이 나왔다. 왜인지는 찾지 못했고, 그때그때 sort 하도록 변경했더니 100점..

알고리즘/그래프

백준 - 1991

문제 https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 주어진 트리를 전위, 중위, 후위 순회하는 문제였다. 문제 풀이 재귀함수를 이용해 해결했다. #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include using namespace std; pair G[27];//최대 노드 수 26 int N; int is..

알고리즘/구현

프로그래머스 - 순위 검색

문제 https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건에 해당하는 사람의 수를 구하는 문제였다. 문제 풀이 완전탐색을 하게 될 경우 5000 * 100000번의 연산을 해야 해서 절대 시간 안에 못 풀 것 같았다. 점수순으로 정렬 후 조건으로 찾아볼까도 했는데 많은 시간이 줄어들 것 같진 않았다. 그래서 5차원 벡터를 MAP 처럼 만들어 사용했다. 먼저 info의 정보를 분해해서 벡터에 저장하고, query 또한 같은 방법으로 분해해서 어떤..

알고리즘/DFS BSF

프로그래머스 - 양궁대회

문제 https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 라이언이 최대 점수차로 (가장 적은 점수가 더 많은 결과로) 이길 수 있는 점수표를 만드는 문제였다. 문제 풀이 보자마자 완전탐색 문제인 것을 알았는데, 조건이 많아서 하나씩 구현하느라 꽤 걸렸다. dfs 종료조건에서 문제의 이런저런 조건을 다 충족시켜주고 이기는 경우가 없을 경우에는 asnwer에 -1을 넣어주면 된다. 처음에 점수 따는 경우와 안 따는 경우를 조건문으로 해서 사실은 안따는..

hahihi
히호 노트