본문 바로가기

전체 글108

[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.
[우아한테크코스 6기] 1주차 프리코스 회고록 우아한 테크코스 참여를 시작하며… 올해에도 역시 낙엽과 함께 우테코의 계절이 왔다!!! 작년에도 프리코스에 참여했지만,,, 오프라인 코테도 참여 못하고 떨어졌다. 그래도 몰입하여 4주간의 프리코스를 참여하고, 매주 주어진 미션을 수행한 경험이 나에게 무척이나 유익했다. 프리코스 참여가 전원 확대되면서 누구나 참여할 수 있었고, slack을 통해 서로 으쌰으쌰하고 다른 사람들의 코드를 리뷰하면서 새로운 지식도 쌓을 수 있었기 때문이다. 다만,,, 1년전의 나는 너~무 바빴기 때문에 우테코에 완전 몰입할 수 없었고ㅎㅎ 항상 바쁘게 과제를 했던게 아쉬움으로 남았다. 그래서 이번 6기 프리코스에서 내가 얻어가고 싶은 것은 크게 2️⃣가지이다. 자바와 객체지향 익히기: 아직 모르는게 많다. 왜 코드를 이렇게 작성.. 2023. 10. 29.
Java String이 불변(immutable)인 이유 알고리즘 문제를 풀다가 dfs에서 다음 값을 업데이트해줄 때, 궁금증이 생겼습니다. 이 코드는 for(int i = 0; i < tickets.length; i++) { if(!visited[i] && now.equals(tickets[i][0])) { visited[i] = true; dfs(tickets[i][1], count+1, trip + "," + tickets[i][1], tickets); visited[i] = false; } } 이렇게도 쓸 수 있는거 아닌가요?! for(int i = 0; i < tickets.length; i++) { if(!visited[i] && now.equals(tickets[i][0])) { visited[i] = true; trip += ","; trip +.. 2023. 10. 27.
프로그래머스: 기지국 설치 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.