백준 6

백준2583_영역구하기 (java)

https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 문제 풀이 방식 단지번호 붙이기 문제와 구하는 것은 같다. 다만, 우리가 평소에 배열로 만드는 map과 좌표가 달라서 이 부분이 좀 까다로웠다. 분명 첫 입력이 0,2 이고 4, 4인데 예시의 그림의 봐도 맞지않는것 같고, 이해가 안되서 입력을 받는 부분은 다른 블로그를 좀 참조했다. 직사각형의 범위는 모두 1로 바꾸어준다. 직사각형으로 채워진 map이 만들어지면, 방문 한적이..

알고리즘 2021.11.15

백준1182_부분수열의 합 (java)

https://www.notion.so/softsquared/1182_-c74634d548d74a2f82baa83b7482c8e3#c557191a49b04f17b6c9ee65151962ef 백준1182_부분수열의 합 전제조건 www.notion.so 전제조건 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수 1 ≤ N ≤ 20, |S| ≤ 1,000,000 부분수열이란? 하나의 수열의 집합이 있다면 그 중에서 부분부분의 수열을 말한다. 예제의 {-7 -3 -2 5 8} 의 부분수열은 {}, {-7}, {-7 -3}, {-7 -3 -2}, ....., {-7 -2}, {-7 -2 5}, {-7 -2 8},....,{-3 5 8}, ..., {5 8} 이런 순서가 지켜진 모..

알고리즘 2021.11.14

백준2075_N번째 큰 수 (java)

https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 문제 풀이 방식 나의 생각 ArrayList에 입력받은 숫자를 모두 넣는다. reverseSort한다. n번째 큰수를 찾는 것이므로 내림차순 정렬된 list에서 n-1번째 숫자를 찾는다. 해당 방법은 시간이 좀 더 오래걸린다. 찾아본 풀이 우선순위큐를 최대힙으로 변경해서 큐에 입력된 숫자를 넣는다. 반복문을 통해 n-1번째까지 큐에서 poll해준다. 반복문이 끝나고 마지막에 한번 poll해주면 n번째 큰..

알고리즘 2021.11.09

백준1158_요세푸스 문제 (java)

https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 문제 풀이 방식 처음생각 처음에는 3번째 마다 제거한다고 해서 n까지의 for문에서 index를 증가시키면서 출력하려고 했으나, 단순히 인덱스만 증가시키면 n다음에 1로갈 수 있는 방법이 떠오르지 않음. 다음생각 문제에서 사람들이 원을 이루어 앉아있다고 하였기에 단순히 원형큐 자료구조를 사용하려고 했음. 그러나, 앞에서는 데이터를 뽑거나 삭제하는 일만 일어나고 뒤에서는 앞에서 뽑은 데이터를 넣기만 하면되기 때문에 일반적인 큐 자료구조를 써도 되겠다고 생각하였다. 수도코드 해당문제는 수도코..

알고리즘 2021.11.08

백준1764_듣보잡 (java)

생각한 문제풀이 방식 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M N과 M은 각각 최대 500,000이므로 N+M은 100만이다. 제한시간은 2초이므로 시간복잡도는 O(N^2)미만이 되야한다. 먼저, HashMap을 사용해서 듣도못한 사람의 이름을 key로 횟수를 value로 저장. 처음 이름이 나오는 것이기때문에 value를 1로 지정 그리고 보도못한 사람의 명단을 돌면서 map에 이미 이름이 있으면 +1 모든 입력을 받고 난 후 map에서 value가 2에 해당하는 key의 갯수와 이름을 출력해준다. 해당 자료구조를 사용한 이유 자료구조는 HashMap을 사용했다. 듣도못한 사람과 보도못한 사람의 명단이 순서대로 입력되는데 그 중에서 듣도보도 못한사람이란 뜻은 두 그룹에 모두 속해있다는 뜻이다..

알고리즘 2021.11.08

백준1620_나는야 포켓몬 마스터 이다솜 (java)

문제링크 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 처음에 문제보고 길어서 속으로 뭐지...했는데 정작 문제자체는 어렵지 않았다. 오히려 스토리가 있어 재미있었던 문제! 안녕? 내 이름은 이다솜. 나의 꿈은 포켓몬 마스터야. 일단 포켓몬 마스터가 되기 위해선 포켓몬을 한 마리 잡아야겠지? 근처 숲으로 가야겠어. (뚜벅 뚜벅) 얏! 꼬렛이다. 꼬렛? 귀여운데, 나의 첫 포켓몬으로 딱 어울린데? 내가 잡고 말겠어. 가라! 몬스터볼~ (펑!) 헐랭... 왜 안 잡히지?ㅜㅜ 몬스터 ..

알고리즘 2021.09.30