목록Computer (168)
Machineboy空
https://www.acmicpc.net/problem/14620 14620번: 꽃길 2017년 4월 5일 식목일을 맞이한 진아는 나무를 심는 대신 하이테크관 앞 화단에 꽃을 심어 등교할 때 마다 꽃길을 걷고 싶었다. 진아가 가진 꽃의 씨앗은 꽃을 심고나면 정확히 1년후에 꽃이 피므 www.acmicpc.net 문제요약 상하좌우로 피는 꽃 세 송이를 최소 비용으로 심기 난이도 Silver 2 풀이 포인트 dfs 응용 REVIEW 무조건 풀 수 있을 것 같은데 안 풀려서 너무 답답했는데 어찌저찌 하드 코딩으로 해냈다. CODE #include using namespace std; int n, a[11][11], visited[11][11]; vector co; int dx[] = {-1,1,0,0}; i..
https://www.acmicpc.net/problem/1189 1189번: 컴백홈 첫 줄에 정수 R(1 ≤ R ≤ 5), C(1 ≤ C ≤ 5), K(1 ≤ K ≤ R×C)가 공백으로 구분되어 주어진다. 두 번째부터 R+1번째 줄까지는 R×C 맵의 정보를 나타내는 '.'과 'T'로 구성된 길이가 C인 문자열이 주어진다 www.acmicpc.net 문제요약 왼쪽 아래에서 오른쪽 위 꼭짓점으로 이동할 때, 이동 거리가 k인 경우의 수 구하기 난이도 Silver 1 풀이 포인트 경로의 수 누적하기 방문배열 초기화 위치 REVIEW 방문배열에 이동 거리를 누적해 가는 방법에 익숙해 져야 하고, 재귀가 끝나는 시점에 방문배열을 초기화해줘야 하는데, 이 코드의 위치를 찾기가 힘들었다. 한 경로가 끝이나면 방문 ..
https://www.acmicpc.net/problem/17071 17071번: 숨바꼭질 5 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 500,000)에 있고, 동생은 점 K(0 ≤ K ≤ 500,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 문제요약 1칸 좌우 이동, 2배 이동이 가능하고, 도착점도 가속 이동을 할 때, 둘이 만나는 최소 시간 난이도 Platinum 5 풀이 포인트 방문배열, 짝홀을 나눠 생각하는 것 수빈이가 동생보다 먼저 갔던 위치고, 두 번만에 이동이 가능하다면 아니면 한번에 만나거나! REVIEW 어렵다 했더니 과연 플래티넘. 동생위치를 추적하고, bfs를 돌려가며 같은 경우..
https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제요약 1칸 좌우 이동, 2배 이동이 가능할 때, 도착점으로 가는 최단 시간과 궤적 나타내기 난이도 Gold 4 풀이 포인트 prev에 계속 쌓아두며 역추적해가는 방법 for문 사용법 for (int next : {now - 1, now + 1, now * 2}) REVIEW 우선 너무 오랜만에 풀어서 using namespace std 구문도 낯설어질 뻔..
https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 문제요약 1칸 좌우 이동, 2배 이동이 가능할 때, 도착점으로 가는 최단 시간과 경우의 수 구하기. 난이도 Gold 4 풀이 포인트 bfs 응용 방문한 적 없다면 이동 시간 누적 cnt 배열 경로의 수는 지금까지의 경로의 수에 누적해주는 방식 방문한 적 없다면 현재 위치까지의 경우의 수 + 다음 정점의 경우의 수 방문한 적 있고, 현재 노드에서 간 적 있는 ..
https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 연산자 우선순위는 모두 동일하기 때문에, 수식을 계산할 때는 왼쪽에서부터 순 www.acmicpc.net 문제요약 괄호를 추가하여 식의 최댓값 구하기 난이도 Gold 3 풀이 포인트 숫자와 기호 나누어 생각하기 재귀의 반복 동작 파악 REVIEW 우선 괄호를 친다는 것이 실제로 string 사이에 실물 괄호를 쳐주는 것이 아닌, 먼저 연산을 하면 된다는 것을 파악하고, stack에 쌓으며 pop을 해줄까 하는 아이디어를 떠올렸다. 다음으로는, string 수식을 어떻게 사칙연산으로 바꾸..
https://www.acmicpc.net/problem/12869 12869번: 뮤탈리스크 1, 3, 2 순서대로 공격을 하면, 남은 체력은 (12-9, 10-1, 4-3) = (3, 9, 1)이다. 2, 1, 3 순서대로 공격을 하면, 남은 체력은 (0, 0, 0)이다. www.acmicpc.net 문제요약 hp가 0이 될 때까지 공격 최소 횟수 난이도 Gold 4 풀이 포인트 Struct 사용법 // 세 개 부터는 튜플인데, 귀찮으니 struct struct A{ int a,b,c; }; queueq; 그래프로 치환하여 생각하기 음수 막아주는 코드 int na = max(0, a - _a[i][0]); int nb = max(0, b - _a[i][1]); int nc = max(0, c - _..
https://www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자 www.acmicpc.net 문제요약 상하좌우로 이동하는 불, 지훈이는 미로에서 탈출가능한 지 난이도 Gold 4 풀이 포인트 BFS REVIEW 우선, 불이 여러 군데서 발생할 수 있다는 것과 발생하지 않을 수 있다는 것을 간과했다. 문제를 제대로 읽자. 그리고 아직 bfs와 dfs의 용도를 완벽하게 파악하지 못했나보다. 불은 dfs로 퍼져나가고, 지훈이는 bfs로 최단 거리 내에 이동해야한다고 생각했다...