Algorithm (PS)

·Algorithm (PS)
https://www.acmicpc.net/problem/1890 1890번: 점프 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장 www.acmicpc.net 최근 계속 밤새서 팀플하고 사랑니뽑고 아팠다가 다시 회복하고 백준 달린다 ㅎㅎ .. n = int(input()) array = [] answer = 0 for _ in range(n): array.append(list(map(int, input().split()))) # 오른쪽, 아래 dx = [0, 1] dy = [1, 0] visited = [[False] * n for _ in ..
·Algorithm (PS)
https://www.acmicpc.net/problem/18430 18430번: 무기 공학 첫째 줄에는 길동이가 가지고 있는 나무 재료의 세로, 가로 크기를 의미하는 두 자연수 N, M이 주어진다. (1 ≤ N, M ≤ 5) 다음 N개의 줄에 걸쳐서, 매 줄마다 나무 재료의 각 위치의 강도를 나타내 www.acmicpc.net 백트레킹 문제 ! 삽질 많이 했다 ㅜㅜ dx, dy 는 4가지 부메랑의 모양을 만들어주기 위해서 좌표를 구하는 연산을 위해 만들었다. 노란색 칸을 (x, y) 라고 했을 때 하얀색 칸의 좌표에 도달하기 위한 값을 저장했다. 또한 array 를 탐색할 때 (0, 0) .. (n-1, m-1) 를 부메랑의 중심 좌표 (노란색으로 칠한 부분)로 두고 부메랑으로 만들 수 있는지 없는지 ..
·Algorithm (PS)
https://www.acmicpc.net/problem/6443 6443번: 애너그램 첫째 줄에 단어의 개수 N 이, 둘째 줄부터 N개의 영단어가 들어온다. 영단어는 소문자로 이루어져 있다. 단어의 길이는 20보다 작거나 같고, 애너그램의 수가 100,000개 이하인 단어만 입력으로 주 www.acmicpc.net 1. dfs로 백트래킹을 구현하여 가능한 모든 알파벳 조합을 뽑아주었다 result 리스트에 만들어지는 단어들을 모두 append해주고, result를 sort해주었더니.. 메모리 초과가 났다. 최근에 코테를 2번정도 봤는데, 단순하게 구현을 해주면 쉽게 풀리지만 시간복잡도와 공간복잡도, 혹은 edge case에서 틀렸거나 비효율적인 코드로 제출해서 털렸던 기억이있다.. 이런걸 학습하기에 6..
·Algorithm (PS)
https://www.acmicpc.net/problem/1474 1474번: 밑 줄 세준이는 N개의 영어 단어를 이용해 길이가 M인 새로운 단어를 만들려고 한다. 새로운 단어는 N개의 단어를 순서대로 이어 붙이고, 각 단어의 사이에 _을 넣어서 만든다. 이렇게 만든 새로운 단어 www.acmicpc.net 그리디 문제이다 규칙을 찾는데 좀 오래 걸렸는데, 문제에서 핵심이 되는 것은 바로 사전순 정렬이다. 알파벳 대문자, 소문자, 밑 줄의 순서는 'A' < 'B' < 'C' < ... < 'Z' < '_' < 'a' < 'b' < 'c' < ... < 'z' 이다. 라고 문제에서 주어졌다. 즉, 대문자로 시작하는 단어의 경우 대문자의 우선순위가 '_' 의 우선순위 보다 높으니까, _가 뒤에 등장해야하고,..
·Algorithm (PS)
https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 오 어제 풀었던 백준 5547 일루미네이션 문제와 상당히 유사한 접근법으로 풀이하면 되는 BFS/DFS문제였다. [ 문제 풀이 아이디어 ] i) 0과 인접한 1 찾기 공기 칸(값이 0인 칸)을 중심으로 bfs 탐색을 하고, 공기 칸이 치즈 칸 (값이 1 인 칸)을 만나게 되면 치즈칸에 += 1을 해준다. 탐색이 종료되었을 때 array[i][j] 의 값이 3이상이면 맞닿는 공기 칸이 ..
·Algorithm (PS)
BFS/DFS 를 응용한 그래프 탐색문제이다. 문제 조건에 대해 생각해볼 것들이 있는 문제여서 좋은 문제 같다 https://www.acmicpc.net/problem/5547 5547번: 일루미네이션 첫째 줄에 두 개의 정수 W와 H가 주어진다. (1 ≤ W, H ≤ 100) 다음 H줄에는 상근이네 집의 건물 배치가 주어진다. i+1줄에는 W개의 정수가 공백으로 구분되어 있다. j번째 (1 ≤ j ≤ w) 정수의 좌표는 www.acmicpc.net 1. BFS 탐색 기준 처음에는 빌딩들을 기준으로 순회하고 외벽을 하나씩 세려고 했으나, 그 방법보다는 거꾸로 빈공간인 0을 탐색하고 1을 발견할 때마다 count를 해주는 방법이 적절하다. 위의 예시와 같이 (2,3) 같은 경우 빌딩을 기준으로 센다면, 6..
·Algorithm (PS)
https://www.acmicpc.net/problem/9465 전형적인 dp 문제 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 비슷한 문제를 이전에 풀어서 쉽게 풀 수 있었다 https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 다만 1309번은 경우의 수만 세어주면 되는데, 9465번은 스티커의 값을 누적해서 합해야 한다는 것이 다르다. import sys input ..
·Algorithm (PS)
https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net dp 는 3 * (n+1)의 공간으로 만들어 주었다. 사자를 배치하는 것에 대해 생각해보면 다음과 같은 세 가지 이다. 1. 사자를 배치하지 않는 경우 dp[i][0] = dp[i-1][0] + dp[i-1][1] + dp[i-1][2] 2. 사자를 왼쪽 칸에 배치하는 경우 사자를 연속해서 왼쪽 칸에 배치할 수 없으므로, 이전 계산 값 (dp[i-1])에서 오른쪽에 배치한 경우와 배치하지 않는 경우의 수를 가져온다. dp[i][1] = dp[i-1][0] + dp[i-1][2] 3. 사자를 오른 쪽 칸에 배치하는 경우 사자를 연속..
minjiwoo
'Algorithm (PS)' 카테고리의 글 목록 (17 Page)