- Today
- Yesterday
- Total
목록Algorithm (174)
메이쁘
https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 부분 조합을 이용하는 문제이다. 여기서 중요한 것은 1. 암호는 L 개의 알파벳으로 이루어져 있다. 2. 모음은 최소 1개, 자음은 최소 2개 가 암호에 포함되어 있어야 한다. 3. 암호 내 알파벳은 오름차순 정렬이 되어있다. 매커니즘 모음을 기준으로 만약 모음이 i개라면, 자음은 L - i 개가 되어야 한다. 예를 들어, 모음을 1개 뽑는 경우의 수 nC1 조합을 통해 원하는 모음 1개를 얻으면 자음..
https://www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓을 수 있고, 다른 쪽에는 무게를 측정하려는 물건만 올려놓을 수 있다. 무게가 양의 정수인 N개의 저울추가 주어질 때, 이 추들을 사용하여 측정할 수 없는 양의 정수 무게 중 최솟값을 구하는 프로그램을 작성하시오. 예를 들어, 무게가 각각 3, 1, 6, 2, 7, 30 www.acmicpc.net 그리디 알고리즘 문제이다. 처음에 HashSet 으로 모든 경우의 수를 구하는 코딩을 했더니 시간 초과가 발생했었다.. 뭔가 잘못되었다 싶어..
https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한다. 예를 들어, 문서가 abababa이고, 그리고 찾으려는 ababa라면, 세준이의 이 함수는 이 단어를 0번부터 찾을 수 있고, 2번부터도 찾을 수 있다. 그러나 동시에 셀 수는 없다. 세준이는 문서와 검색하려는 단어가 주어졌을 때, 그 단어가 최대 몇 번 중복되지 www.acmicpc.net 간단한 문자열 문제! String 을 사용하는 방법 StringBuilder를 사용하는 방법 이 있는데, 나는 StringBuilder를..
https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때, 문제를 간단하게 하기 위하여, 장마철에 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠긴다고 가정한다. 어떤 지역의 높이 정보는 행과 열의 크기가 각각 N인 2차원 배열 형태로 주어 www.acmicpc.net DFS 관련 문제이다. 기존 DFS 문제와는 다른 점이 있다면 0부터 어느 특정 size까지 하나씩 count를 따진다는 것과 각 si..
https://www.acmicpc.net/problem/1016 1016번: 제곱 ㄴㄴ 수 첫째 줄에 min과 max가 주어진다. min은 1보다 크거나 같고, 1,000,000,000,000보다 작거나 같은 자연수이고, max는 min보다 크거나 같고, min+1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 너무 애먹었던 문제. 보통이라면 소수를 찾는 문제들이 대거 있지만 이렇게 소수의 제곱과 나눠떨어지는 문제는 처음봤다. 그래서 그런가 정답률이 매우 낮을 뿐 아니라 생각보다 어렵고 까다로운 문제다! 몇 가지 체크해야 할 부분이 있다. 1) max - min (max와 min의 차이) 는 최소 0에서 최대 1000000(백만)까지이다. 이는 배열 최대 크기와 근접하므로 최대..
https://www.acmicpc.net/problem/2931 2931번: 가스관 문제 러시아 가스를 크로아티아로 운반하기 위해 자그레브와 모스코바는 파이프라인을 디자인하고 있다. 두 사람은 실제 디자인을 하기 전에 파이프 매니아 게임을 이용해서 설계를 해보려고 한다. 이 게임에서 유럽은 R행 C열로 나누어져 있다. 각 칸은 비어있거나, 아래 그림과 같은 일곱가지 기본 블록으로 이루어져 있다. 가스는 모스크바에서 자그레브로 흐른다. 가스는 블록을 통해 양방향으로 흐를 수 있다. '+'는 특별한 블록으로, 아래 예시처럼 두 방향 (수직, www.acmicpc.net 은근 시간이랑 손이 많이 가는 문제였다.. 시간을 반나절 허비한 듯 하다. 썩 좋지 않은 문제라고 생각되는게 경우의 수를 규칙이 아닌 약간..
https://www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 크거나 같고, N-i보다 작거나 같다. www.acmicpc.net 그리디 알고리즘 방식인데 순열 구하는 방법(LinkedList)과 똑같이 사용했다. (다음에 시간되면 포스팅해보겠다....!!!!!) 매커니즘 사람의 수를 N이라고 한다. 1) 그래서 0 ~ N-1 까지의 수를 순서대로 하나씩 LinkedList에 넣어둔다. 2) 인덱스 대로 줄 서있는 사람을 나타내는 int 배열을 생성한다. 3) 왼쪽에 자기보다 키..
https://www.acmicpc.net/problem/8980 8980번: 택배 입력의 첫 줄은 마을 수 N과 트럭의 용량 C가 빈칸을 사이에 두고 주어진다. N은 2이상 2,000이하 정수이고, C는 1이상 10,000이하 정수이다. 다음 줄에, 보내는 박스 정보의 개수 M이 주어진다. M은 1이상 10,000이하 정수이다. 다음 M개의 각 줄에 박스를 보내는 마을번호, 박스를 받는 마을번호, 보내는 박스 개수(1이상 10,000이하 정수)를 나타내는 양의 정수가 빈칸을 사이에 두고 주어진다. 박스를 받는 마을번호는 보내는 마을번호 www.acmicpc.net 그리디 알고리즘 문제 중 하나인 택배 문제. 처음에 가볍게 접근했다가 몇 시간을 허비하고 결국 힌트를 통해 접근법을 찾았다. 가볍게 접근이란..
https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 문제 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 깨고 말았다. 안타깝게도 자는 동안 키보드가 잘못 눌려서 보고서의 모든 글자가 A와 B로 바뀌어 버렸다! 그래서 평석이는 보고서 작성을 때려치우고 보고서에서 '좋은 단어'나 세보기로 마음 먹었다. 평석이는 단어 위로 아치형 곡선을 그어 같은 글자끼리(A는 A끼리, B는 www.acmicpc.net 문자열 처리 문제다. Stack을 사용하는 것이 해결의 핵심이다. 문제에 대한 설명은 직접 확인하면 되고, 해결 방법만 작성해보겠다. ..
https://www.acmicpc.net/problem/1972 1972번: 놀라운 문자열 문제 대문자 알파벳으로만 이루어져 있는 문자열이 있다. 이 문자열에 대해서 ‘D-쌍’이라는 것을 정의할 수 있는데, 이 문자열에 포함되어 있는, 거리가 D인 두 문자를 순서대로 나열한 것을 이 문자열의 D-쌍이라고 한다. 예를 들어 문자열이 ZGBG라고 하자. 이 문자열의 0-쌍은 ZG, GB, BG가 되고, 이 문자열의 1-쌍은 ZB, GG가 되며, 이 문자열의 2-쌍은 ZG가 된다. 문자열의 길이가 N이라고 할 때, 0-쌍부터 (N-2)-쌍까지가 정의 www.acmicpc.net 정말 놀라운 문자열 문제이다..! 문제를 요약하자면 n개의 문자로 이루어진 문자열을 입력받았을 때 이 문자열의 문자 하나와 그 문자..