java 5

[leetcode] 46. Permutations

https://leetcode.com/problems/permutations/description/ LeetCode - The World's Leading Online Programming Learning Platform 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 문제 해석 배열이 주어지면 순열을 아무 순서로나 반환하면 되는 문제였다. 통과 코드 풀이: Back-tracking 백트래킹을 이용해서 이미 사용한 인덱스인지 체크했고 체크해야하는 인덱스 순서를 파라미터로 보내서 ..

코딩테스트 2023.09.16

[leetcode] 45. Jump Game II

https://leetcode.com/problems/jump-game-ii/description/ LeetCode - The World's Leading Online Programming Learning Platform 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 = [2, 3, 1, 4, 4] 라는 배열..

코딩테스트 2023.09.16

[프로그래머스] 이진 변환 반복하기

프로그래머스 70129 https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 이진 변환을 반복하면서 몇 번 이진 변환을 진행했는지, 이진 변환을 진행하면서 제거한 0의 개수의 합을 answer 배열에 담으면 된다. 이진 변환을 멈추는 조건은 주어진 String s가 "1"이 될 때까지이다. replaceAll을 통해서 "0"을 모두 ""으로 변환하고 replaceAll을 하기 전 문자열과 한 후 문자열의 길이를 비교한다. 또한, 변환한 문자열의..

알고리즘 2022.09.11

[프로그래머스] 숫자 문자열과 영단어

프로그래머스 81301번 https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 one4seveneight을 다시 1478로 바꿔달라는 문제이다. 숫자에 대응되는 영단어의 알파벳 특징을 바탕으로 변환하였다. 주어진 문자열을 for문으로 하나씩 읽어들이면서 zero, one, eight, nine의 경우 첫 알파벳이 고유하다. 따라서 이 영단어를 만나면 곧장 바꿔주고 읽어들인 문자열 수만큼 for문 포인터를 이동시킨다. s로 시작하거나 t, f로 ..

알고리즘 2022.09.08

[백준] 나무 자르기

백준 2805번 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 프로그래머스 징검다리 건너기 문제를 풀고 이분 탐색이 입력값을 줄이고 문제를 최적화하는데 매우 좋다는 것을 알게 되었다. 입력값을 O(logN)해서 시간복잡도가 매우 줄어들게 된다. 분석 나무 자르기는 이분 탐색을 이용해서 풀어야하는 문제 중 하나이다. 결정 문제이고 Check(x)에서 x의 값에 따라 적어도 M미터의 나무를 집에 가지고 갈 ..

알고리즘 2022.09.04