목록Data Structure & Algorithms (19)
yeonuel-tech

https://www.acmicpc.net/problem/10422 10422번: 괄호 ‘(‘, ‘)’ 문자로만 이루어진 문자열을 괄호 문자열이라 한다. 올바른 괄호 문자열이란 다음과 같이 정의된다. ()는 올바른 괄호 문자열이다. S가 올바른 괄호 문자열이라면, (S)도 올바른 괄호 www.acmicpc.net 1. 문제 설명 n이 주어졌을 때, 길이가 n인 올바른 괄호 문자열의 개수를 구해야함 2. 접근법 이 문제는 창의적 사고력과 집중력이 요구되는 좋은 문제인것 같다 일단, 우리가 구하고자 하는 올바른 괄호 문자열의 두 가지 특징을 살펴보자 1. 시작하는 문자는 항상 여는 괄호 '('이다 2. 문자열의 길이는 짝수이다 시작하는 문자가 닫힌 괄호 ')' 인 경우를 생각해보면 그 뒤에 어떤 문자열이 와..

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 1. 문제 설명 수빈이는 뮤탈리스크 1개가 남아있고, 강호는 SCV N개가 남아있다. 각각의 SCV는 남아있는 체력이 주어져있으며, 뮤탈리스크를 공격할 수는 없다. 즉, 이 게임은 수빈이가 이겼다는 것이다 남아있는 SCV의 체력이 주어졌을 때, 모든 SCV를 파괴하기 위해 공격해야 하는 횟수의 최솟값을 구해라 2. 접근법 첫번째로 생각한 풀이법은 브루트 포스 방식이다 다음 순열을 이용해서 뮤탈리스크가 n개..

https://www.acmicpc.net/problem/1495 1495번: 기타리스트 첫째 줄에 N, S, M이 주어진다. (1 ≤ N ≤ 50, 1 ≤ M ≤ 1,000, 0 ≤ S ≤ M) 둘째 줄에는 각 곡이 시작하기 전에 줄 수 있는 볼륨의 차이가 주어진다. 이 값은 1보다 크거나 같고, M보다 작거나 같다. www.acmicpc.net 1. 문제 설명 곡의 개수 N과 시작 볼륨 S, 그리고 M이 주어짐 또한, 볼륨의 리스트인 V가 주어짐 V[i]는 i번째 곡을 연주하기 전에 바꿀 수 있는 볼륨을 의미한다. 항상 리스트에 적힌 차이로만 볼륨을 바꿀 수 있다. 즉, 현재 볼륨이 P이고 지금 i번째 곡을 연주하기 전이라면, i번 곡은 P+V[i]나 P-V[i] 로 연주해야 한다 하지만, 0보다 작..

https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 1. 문제 설명 크기가 N×N인 도시가 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 정보는 0, 1, 2로 이루어져 있고, 0은 빈 칸, 1은 집, 2는 치킨집을 의미한다 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 집을 기준으로 정해지며, 각각의 집은 치킨 거리를 가지고 있다. 도시의 치킨 거리는 모든 집의 치킨 거리의 합이..

https://www.acmicpc.net/problem/16439 16439번: 치킨치킨치킨 첫 번째 줄에 고리 회원의 수 N (1 ≤ N ≤ 30) 과 치킨 종류의 수 M (3 ≤ M ≤ 30) 이 주어집니다. 두 번째 줄부터 N개의 줄에 각 회원의 치킨 선호도가 주어집니다. i+1번째 줄에는 i번째 회원의 선 www.acmicpc.net 1. 문제 설명 n 명의 유저가 있고, m가지 종류의 치킨이 있으다 3가지 치킨을 선택했을 때 유저들의 만족도의 합이 최대가 되는 경우를 구해라 (한 사람의 만족도는 시킨 치킨 중에서 선호도가 가장 큰 값으로 결정) 2. 접근법 이 문제는 브루트 포스 알고리즘으로 풀 수 있다 하지만, 단순한 브루트 포스의 경우 시간초과가 뜬다 주어진 입력값의 범위는 N (1 ≤ N..

https://namu.wiki/w/%EB%B8%8C%EB%A3%A8%ED%8A%B8%20%ED%8F%AC%EC%8A%A4 브루트 포스 - 나무위키 예를 들어 예전 하나 워드 같은 프로그램은 문서에 암호를 걸어 놓고 문서 파일을 헥스 에디터로 열어보면 암호가 문서 파일 헤더에 적혀있는 것을 볼 수 있다. 즉, 데이터는 그대로 평문인 채 namu.wiki 브루트 포스를 단순한 알고리즘이지만 강력하다 브루프 포스는 문제에서 발생할 수 있는 모든 경우에 대해 다 따져보면서 문제를 해결한다 그러기 때문에 정확도는 100%이다 하지만, 문제가 있다 바로 무식하게 모든 경우를 따지기 때문에 효율적인 알고리즘은 아니다 즉, 이 알고리즘을 적용했을 때 제한 시간내에 작동하는지 따져봐야 한다 문제에서 보통 시간 제한과 ..

https://www.acmicpc.net/problem/11066 11066번: 파일 합치기 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본 www.acmicpc.net 1. 문제 설명 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본이 들어있는 한 개의 파일을 만든다. 이 과정에서 두 개의 파일을 합쳐서 하나의 임시파일을 만들고, 이 임시파일이나 원래의 파일을 계속 두 개씩 합쳐서 소설의 여러 장들이 연속이 되도록 파일을 합쳐나가고, 최종적으로는 하나의 파일로 합친다. 두 개의 파일을 합칠 때 필요한 비용(시간 등)이..

https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 1. 문제 설명 n개의 물건이 있고, 각 물건은 무게 w와 가치 v를 가진다. 준서는 최대 K만큼의 무게만을 넣을 수 있는 배낭만 들고 다닐 수 있다. 배낭에 넣을 수 있는 물건들의 가치의 최댓값을 구해라 2. 접근법 해당 문제를 보고 바로 떠오른 알고리즘은 브루트 포스 알고리즘이다 n개의 아이템 각각을 넣을지 말지를 따져서 배낭의..