본문 바로가기

알고리즘/문제 풀이50

[프로그래머스] 옹알이(2) 설명 이 문제를 풀 때, 정석인 방법으로 첫글자에 따라 뒤에 있는 문자들을 확인하면서 탐색했다. 검색해보니 replace()를 이용한 풀이가 있어 참고해보았다. 만약 연속된 발음이 존재한다면?(ex. "ayaaya", "yeye" ...) 👉 발음할 수 없다고 했으니 넘어간다. 허용되는 문자들은 " "로 바꾼다. " " 👉 ""로 바꾼다. 만약 허용되는 것들로만 이루어졌다면, 마지막에 String은 ""이 되므로 길이가 0이 된다. 코드 class Solution { public int solution(String[] babbling) { int answer = 0; for(int i = 0; i < babbling.length; i++) { // 같은 발음을 반복할 수 없다. if(babbling[i].. 2023. 11. 21.
[Leetcode] 141. Linked List Cycle https://leetcode.com/problems/linked-list-cycle/ 설명 이 문제는 주어진 리스트 노드가 싸이클이 있는지 확인하는 문제이다. 토끼와 거북이 알고리즘을 사용하면 된다. https://fierycoding.tistory.com/45 플로이드의 토끼와 거북이 알고리즘(Floyd's Tortoise & Hare Algorithm) / 증명 / leetcode 287번 / 파이썬 발단 어느날 나의 유튜브 알고리즘에 뜬 JOMA... 사실 예전에도 한 번 본 적 있는 영상인데 그때는 킬킬킬 웃고 넘어갔지만 이제와서 다시 보니 알고리즘의 내용이 궁금해졌습니다. 결국엔 알아보 fierycoding.tistory.com 주어진 노드를 fast, slow라고 붙이고 fast 노드는 2씩.. 2023. 11. 12.
[Leetcode] 202. HappyNumber🙃 https://leetcode.com/problems/happy-number/ Happy Number - LeetCode Can you solve this real interview question? Happy Number - Write an algorithm to determine if a number n is happy. A happy number is a number defined by the following process: * Starting with any positive integer, replace the number by the sum of the squar leetcode.com 설명 이 문제를 처음 풀 때는 한자릿수가 되었을 때 1이 아니라면 false가 return되도록 하였다. 그.. 2023. 11. 12.
[LeetCode] 55. Jump Game https://leetcode.com/problems/jump-game/ Jump Game - LeetCode Can you solve this real interview question? Jump Game - You are given an integer array nums. You are initially positioned at the array's first index, and each element in the array represents your maximum jump length at that position. Return true if you can leetcode.com 설명 첫번째로 시도한 방법은 dfs로 탐색하는 것이었다. -> 하지만 이 경우에 시간초과가 발생한다! 방법은 그리디.... 2023. 10. 29.
[LeetCode] 1. Two Sum https://leetcode.com/problems/two-sum/description/ Two Sum - LeetCode Can you solve this real interview question? Two Sum - Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not leetcode.com 설명 방법1. n^n 풀이 방법 이중 반복문을 이용했다. target에서 첫번째 선택한 값을 뺀 것을 re.. 2023. 10. 29.
프로그래머스: 기지국 설치 https://school.programmers.co.kr/learn/courses/30/lessons/12979 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 처음 이 문제를 풀이할 때, 접근한 방법은 그리디였다. 1. 아파트 배열을 만들고, stations 배열을 순회하면서 stations 배열의 인덱스에서 `-w ~ +w` 까지 방문 표시한다. 2. 아파트 배열을 순회하면서 방문 표시되지 않은 지점을 발견하면, 3. 해당 지점부터 2*w 만큼 이동하고 answer에 +1한다. => 하지만 이 경우에 예제는 통과하지만, 히든케이스는 통과하지 못한.. 2023. 10. 27.
프로그래머스: [1차] 다트게임 https://school.programmers.co.kr/learn/courses/30/lessons/17682 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 이 문제는 처음에 문제 풀이 과정을 이해하기 어려웠다. 주어진 예시를 가지고 구현 방법을 구체화했다. 나는 풀이 과정에서 - 값을 넣을 때 ArrayList를 사용하고 - 숫자인지 문자인지 확인하는 것을 if문을 사용해서 했으며 - 10을 확인하려고, strScore 변수를 따로 두고, S와 D와 T일 때마다 초기화해주었다. 더 나은 풀이를 발견해서 공부하려고 한다. 코드 stack을 이용.. 2023. 10. 25.
프로그래머스: 최고의 집합 https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 처음에는 제한 조건을 걸고 모든 집합을 구하려고 하였다. 하지만 가장 큰 원소의 곱의 합의 특징은 집합 내의 원소들의 값 차이가 크지 않다는 점이다. 따라서 원소의 합을 집합 개수로 나눈 몫을 구하고 나머지를 배열에 하나씩 넣어서 잡합 내의 원소 곱이 최대인 배열을 구할 수 있었다. 코드 class Solution { static int[] selected; static int target_.. 2023. 10. 24.
프로그래머스: 주식가격 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 주식 배열을 0번째부터 확인한다. 증가한다면? stack에 주식(prices[i])와 넣는 시간(i)을 저장한다. 감소한다면? stack에서 값을 peek 해서 떨어졌는지 확인한다. 떨어졌다면? stack에서 pop하고 answer 배열에 해당 주식의 index에 (현재 시간 - 주식을 기록한 시간)을 저장한다. 가장 마지막에는 stack이 빌 때까지 값을 꺼내면서 answer 배열을 완성한.. 2023. 10. 20.