본문 바로가기

Algorithm/코드 풀이

(183)
LeetCode: 179번 (Largest Number) [JAVA] 문제 링크 https://leetcode.com/problems/largest-number/ Largest Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. 주어진 배열에 대한 정렬을 하며, 이 때 정렬 조건은 두 수 a와 b에 대해 ab, ba 형식으로 이어붙인 수 중 더 큰 쪽이 되도록 수를 정렬 전체 배열을 속 0의 개수를 체크한다. 만약 모든 배열이 0이면 단순 0 반환 이후 정렬된 배열을 돌며 문자열..
LeetCode: 135번 (Candy) [JAVA] 문제 링크 https://leetcode.com/problems/candy/ Candy - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. 전체 배열을 한 번 돌며 특정 구간(연이어 감소하는 구간의 최소점, 연이어 증가하는 구간의 시작점, 혹은 자신과 좌우 rating이 동일한 지점)을 큐에 저장 while문으로 전체 큐를 돌며 해당 구간을 시작으로 재귀호출을 통해 증가하는 지점들에 대해 현재 candy값 +1을 저장 이후..
LeetCode: 4번 (Median of Two Sorted Arrays) [JAVA] 문제 링크 https://leetcode.com/problems/median-of-two-sorted-arrays/ Median of Two Sorted Arrays - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. merge sort의 과정 중 하나인 merge 과정을 주어진 두 배열에 진행 이후 만들어진 전체 배열에서 중위값을 찾아 반환 문제에서 이미 정렬된 배열 2개가 주어지고 이를 통합해야 하는데, 만약 이걸 단순..
LeetCode: 7번 (Reverse Integer) [JAVA] 문제 링크 https://leetcode.com/problems/reverse-integer/ Reverse Integer - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. 주어진 수의 마이너스를 제거하고 mod를 활용해 수를 뒤집음 제거한 마이너스까지 다시 붙여 뒤집어진 수를 만들고 이 값이 int 범위 내인지 확인 범위 확인 결과에 따라 0 또는 뒤집어진 값을 반환 비교적 간단한 문제이다. 수를 뒤집는 과정을 mod를..
LeetCode: 238번 (Product of Array Except Self) [JAVA] 문제 링크 https://leetcode.com/problems/product-of-array-except-self/ Product of Array Except Self - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. 왼쪽부터 오른쪽으로 nums 배열의 값이 누적되며 곱해지는 배열과 오른쪽부터 왼쪽으로 nums 배열의 값이 누적되며 곱해지는 배열 2개를 생성 후 초기화 하나의 위치 i에 대해 왼쪽부터 오른쪽 배열의 i ..
백준: 18808번 (스티커 붙이기) [JAVA] 문제 링크 https://www.acmicpc.net/problem/18808 18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연 www.acmicpc.net 풀이 전체적인 풀이 과정은 다음과 같다. 주어지는 패널의 사이즈와 스티커들의 정보를 저장 문제에서 요구하는 방식대로 순서대로 스티커를 회전, 이동하며 붙일 수 있는 패널에 부착 스티커를 붙이며 해당 스티커가 차지하는 칸을 반환하며 이를 모두 답에 누적 후 반환 문제 해결을 위해 특정 알고리즘을 필요로 하기 보다는, 문제 요구하는 바를 구대로 구현할 수 있는 지를 보는 구현 문제에 가깝다...
백준: 1043번 (거짓말) [JAVA] 문제 링크 https://www.acmicpc.net/problem/1043 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net 풀이 전체적인 풀이 과정은 다음과 같다. 주어지는 진실을 아는 사람과, 파티 참가인원 정보를 바탕으로 진실을 아는 사람이 참가하는 파티, 파티에 대한 참가자들로 구성된 인접리스트 초기화 이후 진실을 아는 사람들을 시작으로 dfs 탐색을 진행 전체 파티 중에서 방문한 적이 없는 파티들의 개수를 반환 문제에서 원하는 답인 과장된 이야기를 할 수 있는 파티의 개수를 구하려면, 진실된 이야기를 아는 사람..
백준: 1865번 (웜홀) [JAVA] 문제 링크 https://www.acmicpc.net/problem/1865 1865번: 웜홀 첫 번째 줄에는 테스트케이스의 개수 TC(1 ≤ TC ≤ 5)가 주어진다. 그리고 두 번째 줄부터 TC개의 테스트케이스가 차례로 주어지는데 각 테스트케이스의 첫 번째 줄에는 지점의 수 N(1 ≤ N ≤ 500), www.acmicpc.net 풀이 전체적인 풀이 과정은 다음과 같다. 주어진 도로와 웜홀의 정보를 바탕으로 전체 지점간의 이동 cost를 저장하는 2차원 배열을 초기화 이후 해당 배열을 바탕으로 플로이드-와샬 알고리즘을 통해 전체 최단거리 cost를 계산 그 다음 2차원 배열 속 (i, i) 지점을 돌며 해당 지점이 음수 값이 있는 지를 통해 시간이 줄어들며 출발 위치로 돌아올 수 있는 지를 확인 후 ..