반응형
반응형
https://www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net 난이도: solved.ac 실버 2 알고리즘 분류 구현 접근 방법 키가 가장 큰 N부터 1까지 자리를 배정해 주면 된다. 이때 자기의 왼쪽에 자신보다 키 큰 사람이 n명 있다고 하면, 현재 줄에서 맨 왼쪽 자리로부터 n만큼 떨어진 곳에 자리를 배정한다. 배치하려는 자리에 이미 사람이 있다면 해당 자리부터 그 오른쪽 사람들은 오른쪽으로 한 칸씩 밀고 배치한다. 이는 c++ vector의 in..
https://www.acmicpc.net/problem/18290 18290번: NM과 K (1) 크기가 N×M인 격자판의 각 칸에 정수가 하나씩 들어있다. 이 격자판에서 칸 K개를 선택할 것이고, 선택한 칸에 들어있는 수를 모두 더한 값의 최댓값을 구하려고 한다. 단, 선택한 두 칸이 인접 www.acmicpc.net 난이도: solved.ac 실버 1 알고리즘 분류 브루트포스 알고리즘, 백트래킹 구현 방법 이전에 풀었던 백준 14502번 연구소 문제 (https://jangkunstory.tistory.com/135)에서 구현했던 걸 구현하는 문제다. N*M개에서 K개 고르기. 연구소 문제에서는 next_permutation 함수를 이용해 nC3을 구현했지만 이번에는 다른 방식으로 풀었다. (그래도..
https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 난이도: solved.ac 골드 5 알고리즘 분류 구현, 그리디 알고리즘, 문자열 접근 방법 S에서 T로 만들려고 하지 말고, T를 S로 만들려고 하면 매우 간단해진다. 문자열을 바꿀 때는 아래의 두 가지 연산만 가능한데, 여기에 포인트가 있다. - 문자열의 뒤에 A를 붙인다. - 문자열을 뒤집고 뒤에 B를 붙인다. 결국에는 맨 뒤의 문자가 A인지 B인지만 보..
https://www.acmicpc.net/problem/1461 1461번: 도서관 세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책 www.acmicpc.net 난이도: solved.ac 골드 4 알고리즘 분류 정렬, 그리디 알고리즘 접근 방법 우선 문제 조건 중 책을 모두 제자리에 놔둔 후, 즉 맨 마지막으로 옮길 때는 다시 0으로 돌아가지 않아도 된다는 조건을 빼고 생각해보자. 걸음의 수를 최소화하기 위해서는 양수에서 절댓값이 큰 것끼리 M개씩 묶어 옮기고, 음수에 절대값이 큰 것끼리 M개씩 묶어 옮기면 된다. 예제 입력 1에서는 양수: (2, 11) 음수..
https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 난이도: solved.ac 골드 3 알고리즘 분류 구현, 시뮬레이션, 너비 우선 탐색 (BFS) 접근 방법 먹을 수 있는 물고기가 더 이상 없을 때까지 가장 가까이에 있는 물고기를 찾는 과정을 반복해 주면 된다. 물고기를 찾는 방식은 BFS를 이용하면 되는데, 일반적인 BFS 방식으로 구현하면 오답이 된다. 먹을 수 있는 최단 거리 내의 물고기가 여러마리일 때 왼쪽 위에 있는 물고기를 골라..