목록Algorithm (9)
이지선의 블로그
https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 문제 문제 풀이 입력된 문자열을 int배열로 변환, Arrays.sort()로 오름차순 정렬하여 저장했다. 그리고 sum에 arr[0] ~ arr[j]까지 누적된 대기시간을 저장하고, result에 더해주는 방식으로 풀었다. 추가적으로 이번 풀이부터 알고리즘의 시간복잡도를 계산해 보는 루틴을 추가했다. 첫번째 for문 : O(N) Arrays.sort() : O(NlogN) 두번째 for문 : O(N) public class ..
https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 문제 문제 풀이 1. 풍선 개수를 입력 // N 2. 문자열은 split()을 이용하여 공백을 기준으로 분리, int타입 배열에 저장 // arr 3. deque 두 개 생성 후 풍선 안의 쪽지와 인덱스 저장 // qMemo, qIndex 4. 정답을 저장 할 ArrayList 생성 // result 5. 두 deque에서 같이 poll하며 더미 변수(temp)에 쪽지 저장, 1..
https://www.acmicpc.net/problem/1652 1652번: 누울 자리를 찾아라 첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다. www.acmicpc.net 문제 문제 풀이 1. 배열에 방 구조를 입력받는다. 2. for문으로 현재 위치와 가로 위치를 비교하며 count를 증가시킨다. 3. 세로 배열도 동일하게 처리한다. 4. 누울 수 있는 자리가 발견될 때마다 무조건 count를 증가시키기 때문에 이를 처리하기 위해 새로운 변수 rCount를 사용 5. count가 0이 아닐 경우에만 열과 행의 갯수를 세는 방식으로 처리했다. public ..
https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 문제 문제 풀이 사실 아스키코드를 처리하는 과정에서 이해가 잘 되지 않아 난항을 겪었다.. ㅠㅠ 여러가지 풀이를 찾아보며 겨우겨우 푼 문제이다. 일단 36진법 수 ZZZZZ를 10진법으로 변환하려면 아래와 같은 규칙으로 60,466,175 라는 값이 나오게 된다. 5번째 Z : 35 x 1 = 35 4번째 Z : 35 x 36 = 1,260 3번째 Z : 35 x 36^2 = 45,360 2번째 Z..