본문 바로가기

분류 전체보기154

항해99 11일차 TIL(피로도 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 문제를 보자마자 완전탐색이 들어 코드를 짜봤습니다. import java.util.*; class Solution { int answer =0; boolean[] visited; public int solution(int k, int[][] dungeons) { visited = new boolean[dungeons.length]; dfs(0, k, dungeons); return answer; } public void dfs(int depth, int k, int[][] dungeons).. 2024. 4. 6.
@NoArgsConstructor(access = AccessLevel.PROTECTED) 쓰는 이유 @Getter @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) public class PostComment extends BaseTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) public Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "post_id") private Post post; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "parent_comment_id") private PostComment parentComment; @ManyToOne(fetc.. 2024. 4. 6.
Intellij에서 gradle 버전이 안 보일 때 해결법 새로 생성한 것이 아니라 기존 프로젝트를 받아오는 경우 가끔 gradle을 인식하지 못하는 경우가 있습니다. 그럴 때는 Link Gradle Project를 눌러주면 해결됩니다. 우측 상단바에 Gradle이 나타났습니다. 2024. 4. 6.
항해 99 10일차 TIL( 행렬의 곰셈 / 프로그래머스 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 보기엔 굉장히 쉬어보이지만 구현하는데 애 많이먹었다 행렬부터 다시 짚어보겠다 arr1배열의 행과 arr2의 열을 곱하는 거다 그러므로 arr1행의 길이와 arr2의 열의 길이는 같아야 한다 i = 현재 행을 가르키는 인덱스 j = 현재 열을 가르키는 인덱스 k = 내적 계산에서 사용되는 인덱스로, 행렬 A의 열과 행렬 B의 행을 동시에 순회합니다. class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] a.. 2024. 4. 5.
항해99 TIL 9일차(기사단원의 무기 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 약수를 구하는 간단한 문제입니다. 그러나 개선된 약수를 구하는 식을 알아야 합니다. 16의 약수를 구하려면 1~16까지 순회하면 16%i ==0 인지 확인해야 한다. 숫자 하나의 약수를 구하는 것일 때는 상관없다. 여러 숫자를 구할 때는 시간복잡도가 O(n2)이다. 그래서 개선된 약수 구하는 방식이 있다. 1 ~ 16까지 순회하는 것이 아니라 16의 제곱근까지만 살펴보아도 된다는 것이다. 1 x 16 2 x 8 4 x 4 2024. 4. 3.
항해99 TIL 8일차 (피보나치 수 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 간단한 피보나치 문제입니다. 코딩을 처음 배울 때 피보나치 프로그램을 배워 어렵지 않게 재귀함수로 구현했습니다. import java.util.*; class Solution { public int solution(int n) { return (int)(fibonachi(n) % 1234567); } public long fibonachi(int n) { if( n == 0) return 0; else if(n == 1) return 1; else return fibonachi(n-1) +.. 2024. 4. 2.
항해99 TIL 7일차 (크기가 작은 부분 문자열 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 보자마자 윈도우 알고리즘이 떠올랐습니다. n의 길이만큼의 새로운 윈도우 배열을 만들어줍니다. 원도우를 t에 비추어 보며 옆으로 한칸씩 밀어보면 됩니다. 예제 1번을 예시로 들어보겠습니다 t = "314592", n = "271" 윈도우 배열 1 번째 314 윈도우 배열 2 번째 145 윈도우 배열 3 번째 459 . . . 이런 식입니다. 아이디어는 나왔으니 자료구조에 대해 고민해볼 차례입니다. 숫자를 비교해야 하는데 String으로 준 이유가 있을겁니다. 제 생각에는 비교를 용이하기 위해.. 2024. 4. 1.
항해99 TIL 6일차 (삼각 달팽이 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 두 가지 생각이 떠올랐다. 1. 배열 자리 순서대로 숫자의 규칙을 찾아보자 2. 숫자가 증가하는 순서대로 자료구조에 집어넣자 처음엔 규칙을 발견하는 것이 알고리즘 짜기 쉽기 때문에 1번 방법을 선택했다. n = 7 과 n =8을 만들어보면서 규칙을 찾아봤는데 쉽지 않아. 결국 2번을 택했다. 로직을 설명 하자면 숫자가 증가하는 것과 마찬가지로 큰 데두리 삼각형에 숫자를 집어넣고 작은 테두리 삼각형에 숫자를 집어넣는 방식이다. ↙ ↙ ↖ ↙ ↙ ↖ 꼭대기에서 부터 시작하여 요런 방식으로 숫자.. 2024. 3. 31.
항해99 TIL 5일차 (숫자 문자열과 영단어 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 문자로 나왔을 때 1 번째 글자와 2 번째 글자만 보면 된다. ze가 나오면 0, on가 나오면 1 ..... for문을 돌면서 i, i+1을 확인한다. 숫자라면 i++를 해주고 문자로 표현된 숫자라면 i += 문자열 길이를 해주면 된다(지금 문자가 무엇인지 확인했으므로 바로 다음 문자 확인) import java.util.*; class Solution { public int solution(String s) { StringBuffer sb = new StringBuffer(); for(.. 2024. 3. 30.