전체 글 211

[프로그래머스] 키패드 누르기 (Java)

문제 https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 풀이 단순 구현 문제로 키패드 좌표를 2차 배열로 만들어 놓고 시작한다. 첫번째 열은 왼쪽, 마지막 열은 오른쪽 손을 사용하며 중간 열은 왼손, 오른손의 현재 위치와 누를 숫자의 위치 간 거리를 계산하여 거리가 짧은 손으로 키패드를 누른다. 거리가..

[BOJ 4949] 균형잡힌 세상 (Java)

문제 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net So when I die (the [first] I will see in (heaven) is a score list). [ first in ] ( first out ). Half Moon tonight (At least it is better than no Moon at all]. A rope may form )( a trail in a maze. Help( I[m being..

[BOJ 9012] 괄호 (Java)

문제 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 풀이 Stack의 대표문제 '(' 는 Stack에 넣고, ')' 가 나오면 Stack top이 '(' 일 경우 top을 pop한다. 모든 순회가 끝난 후 Stack이 비어있다면 올바른 괄호이다. 아래 문제와 유사하다. 2021.10.18 - [Problem Solving/Programmers] - [프로그래머스] 올바른 괄호 (Java) [프로그래머스] 올바른 ..

[Gradle][Error] compile 사용 시 No candidates found for method call 문제

문제 아래와 같이 compile group 을 추가하려고 하는데, No candidates found for method call 오류가 발생했다. 당연히 reload 시 Exception이 발생한다. Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method compile() for arguments 해결 찾아보니 gradle 3.0부터 compile 이 deprecated되었다고 한다. compile을 implementation 으로 변경해서 오류 해결.

💻IT 2021.11.13

[BOJ 17298] 오큰수 (Java)

문제 https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 풀이 Stack을 이용 풀었다. 뒤에서부터 순회하며 Stack에 넣을건데 먼저 Stack의 top을 체크하면서 현재 원소보다 작으면 pop을 해준다. (현재 원소 보다 큰 값이 나올때까지) 이후 Stack이 empty 상태라면 현재 원소보다 큰 수가 없는 것이므로 -1을 저장 Stack의 사이즈가 1이상이라면 Stack의 top이 현재 원소의 오큰수이므로 저장한다. 마지막으로 현재 원소를 Stack에 ..

[BOJ 1956] 운동 (Java)

문제 https://www.acmicpc.net/problem/1956 1956번: 운동 첫째 줄에 V와 E가 빈칸을 사이에 두고 주어진다. (2 ≤ V ≤ 400, 0 ≤ E ≤ V(V-1)) 다음 E개의 줄에는 각각 세 개의 정수 a, b, c가 주어진다. a번 마을에서 b번 마을로 가는 거리가 c인 도로가 있다는 의 www.acmicpc.net 풀이 아래 문제랑 비슷한데, 해당 문제는 플로이드 와샬 알고리즘을 이용해 푸는게 가능하다. 2021.10.31 - [Problem Solving/Programmers] - [프로그래머스] 합승 택시 요금 (Java) [프로그래머스] 합승 택시 요금 (Java) 문제 https://programmers.co.kr/learn/courses/30/lessons/7..

[BOJ 1655] 가운데를 말해요 (Java)

문제 https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 백준이는 동생에게 "가운데를 말해요" 게임을 가르쳐주고 있다. 백준이가 정수를 하나씩 외칠때마다 동생은 지금까지 백준이가 말한 수 중에서 중간값을 말해야 한다. 만약, 그동안 백준이가 외친 수의 개수가 짝수개라면 중간에 있는 두 수 중에서 작은 수를 말해야 한다. 예를 들어 백준이가 동생에게 1, 5, 2, 10, -99, 7, 5를 순서대로 외쳤다고 하면, 동생은 1, 1,..

[BOJ 11286] 절댓값 힙 (Java)

문제 https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 풀이 PriorityQueue를 사용하면 된다. Comparator로 정렬 조건을 명시해주었다. 소스코드 package heap; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; impo..

[BOJ 1927] 최소 힙 (Java)

문제 https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 풀이 PriorityQueue로 풀면 된다. PriorityQueue는 정수형의 경우 기본정렬이 오름차순이므로 따로 Comparator를 만들어줄 필요는 없다. 소스코드 package heap; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; impo..

[프로그래머스] 구명보트 (Java)

문제 https://programmers.co.kr/learn/courses/30/lessons/42885# 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 풀이 프로그래머스는 문제를 꼼꼼히 읽어야 한다! 구명 보트의 최대 인원이 2명인 것을 간과하고 구현하는 바람에 시간 낭비를 한참 했다. 예시 1) limit: 100 [50, 30, 70, 50] people을 오름차순으로 deque에 넣는다. 30, 50, 50, 70 가장 큰 값과 가장 작은 값을 더한다. 70 + 30 더한..