백준 1461 도서관 (JAVA)
·
BackEnd/알고리즘 공부
https://www.acmicpc.net/problem/1461 1461번: 도서관 세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책 www.acmicpc.net 문제설명 0인 곳에서 돌아다니면서 책을 알맞은 위치까지 가져가야 합니다. 위 예제를 풀어보면 {-39, -37}, {-29, -28}, {-6}, {2, 11}로 총 22 + 12 + 58 + 39 = 131입니다. 문제에 대한 아이디어 처음에는 0에서 가까운 부분 부터 배달을 해야 하지 않을까?라는 고민을 했습니다. 하지만 경우의 수가 너무 많아져 복잡해집니다. 그래서 먼 곳부터 배달을 하는 방법을 ..
백준 10799 쇠막대기 (JAVA)
·
BackEnd/알고리즘 공부
https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 문제 설명 괄호가 예제 처럼 주어질 때, () 이렇게 바로 열고 닫힌 것은 레이저 ( .... ) 인 괄호는 막대기 입니다. 이 레이저가 막대기를 총 몇번 부스는지 찾아내는 프로그램을 구현하면 됩니다. 문제에 대한 아이디어 제일 처음 생각한 아이디어는 레이저를 만나면 레이저를 ArrayList에 저장을 합니다. Stack에는 괄호를 '(' 집어넣고 ')' 이것을 만났을 때 레이저인지 판별해주고 레이저가 아니..
백준 11000 강의실 배정 (JAVA)
·
BackEnd/알고리즘 공부
https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 문제 설명 강의의 시작 시간과 끝나는 시간을 주어졌을 때 모든 강의를 할 수 있게 몇개의 강의실을 빌려야하는지를 계산하는 프로그램을 구현해야 합니다. 문제에 대한 아이디어 이 문제는 회의실 배정문제와 유사합니다. 그래서 처음에는 인풋값을 끝나는 시간을 기준으로 오름차순 정렬을 하고 우선순위 큐에 집어 넣으면서 만약 현재 우선순위 큐에 peek 값보다 시작하는 시간이 작다면 우선순위 큐에 넣어주는 형식으로 진행을 했습니다. 예를 들어 1 3을 집..
백준 1976 여행 가자 (JAVA)
·
BackEnd/알고리즘 공부
https://www.acmicpc.net/problem/1976 1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인 www.acmicpc.net 문제 설명 도시의 노드 연결 여부가 알려주면 주어지는 여행 계획을 수행 할 수 있는지 찾는 알고리즘을 구현하는 문제입니다. 문제를 풀기 위한 아이디어 예제 입력을 보면 인접 행렬로 입력값을 주어지는 것을 알 수 있습니다. 그러므로 인접 행렬을 이용해 문제를 푸는 방식으로 생각해봤습니다. N은 최대 200 이고 M은 1000이하 인 것을 알 수 있습니다. 시간 제한이 2초 이므로 모든 노드를 돌아봐..
방의 개수 (프로그래머스) JAVA
·
BackEnd/알고리즘 공부
https://school.programmers.co.kr/learn/courses/30/lessons/49190 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 입력으로는 방향이 주어진다. 이 방향으로 움직였을 때, 방이 생기는지 확인하면 됩니다. 예시로 살펴보면 주어진 방향대로 움직이면 삼각형 1개, 큰 사각형1개, 평행사변형 1개가 생깁니다. 문제에 대한 아이디어 이 문제는 프로그래머스 코딩 테스트 문제 풀이 전략에서 나온 문제입니다. 간선을 지나갔는지 유무를 확인하는 문제를 어떻게 풀어야 할까 고민하고 있었는데 책에 이 문제가 있어 책의 ..
주식 가격 (프로그래머스) JAVA
·
BackEnd/알고리즘 공부
https://school.programmers.co.kr/learn/courses/30/lessons/42584# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문제 설명이 약간 애매합니다. 1초에 가격에서 앞으로 5초 동안 떨어지지 않으므로 4입니다 2초 시점에 2의 가격은 앞으로 2보다 떨어진 가격이 없으므로 3입니다. 3초 시점에 3의 가격은 바로 1초 후에 떨어지므로 1입니다. 4초 시점은 1초 후까지 가격이 떨어지지 않습니다. 문제에 대한 아이디어 제일 처음 생각은 뒤에서 부터 값을 추가해 그 때 제일 낮은 숫자의 인덱스를 가지고 있..