전체 글 80

자바 - 프로그래머스 / [1차] 뉴스 클러스터링

https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr lv 2 구현 방법 1. string 입력값을 모두 소문자로 바꾼다. 2. string 입력값을 두개씩 끊어서 Map형식으로 받는다. String = 두개씩 끊은 입력값, Integer = 두개씩 끊은 입력값의 개수 2-1. 두개씩 끊은 값중에서 알파벳을 제외한 문자나 숫자가 있을 경우 공백으로 만든다. 2-2. 2-1에서 string 길이를 비교해서 2보다 작으면 Map에 넣지 않는다. (순수 ..

알고리즘 2023.05.26

자바 - 프로그래머스 / 연속 부분 수열 합의 개수

https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr LV 2 구현 방법 3 ≤ elements의 길이 ≤ 1,000 1 ≤ elements의 원소 ≤ 1,000 삼중 포문까지 가능하고, 자료형은 int 써도 된다. 원형 수열을 구현 하는 방법은 "% 배열의 길이"를 이용하면 된다. 1. 삼중 포문 사용 첫번째 포문 - 더할 원소 개수 두번째 포문 - 더할 원소의 시작 인덱스 세번째 포문 - 연속된 합을 구현하기 위해 하지만 현재 문제로는 런타임 ..

알고리즘 2023.05.20

에러 - Unknown return value type: java.lang.Integer

postman으로 게시글 저장 api 호출 테스트를 하다가 Unknown return value type: java.lang.Integer 에러를 만났다. 터미널에서 로그를 보니 게시글 저장은 잘 되는데, http 응답에 리턴값을 못담아서 생기는 오류 같았다.  찾아보니 리턴값을 받을 수 있도록 설정을 해야하는데 안해놓은게 문제였다.  해결법 1. api 매서드에 @ResponseBody 추가하기  2. 컨트롤러에 @Controller 대신 @RestController 추가 - @ResponseBody 어노테이션 포함되어 있음

개발 2023.05.14

자바 - 프로그래머스 / 짝지어 제거하기

https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr LV 2 구현 방법 문자열의 길이 : 1,000,000이하의 자연수 조건을 통해 시간 복잡도를 고려하여 구현해야 한다. ArrayList로 구현 할 경우, remove() 함수가 O(n)의 시간 복잡도를 가지고, 두 짝을 찾는데에도 O(n)을 가지므로 총 O(n^2)의 시간복잡도를 가지게 된다. 이런 경우, 시간초과가 발생한다. 또한 LinkedList로 구현 할 경우, remove() 함수는 O..

알고리즘 2023.05.05

자바 - 프로그래머스 / 피보나치 수

https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr LV 2 구현 방법 피보나치 보자마자 재귀(Top-down)로 후딱 구현했는데 런타임 에러가 났다. 문제 범위가 "n은 2 이상 100,000 이하인 자연수입니다." 여서, 재귀로 풀 경우 중복되는 계산이 많아져서 비효율적이다. 그래서 dp를 이용해서 반복(Bottm-up)으로 구현했다. 그런데도 오류가 떠서 찾아보니 자바 int 자료형의 경우, -2,147,483,648 ~ 2,147,483,6..

알고리즘 2023.05.03

자바 - 프로그래머스 / 개인정보 수집 유효기간

https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr LV 1 구현 방법 1 ≤ terms의 길이 ≤ 20 1 ≤ privacies의 길이 ≤ 100 런타임 에러 걱정없이 구현 할 수 있다. 문제는 String 형식으로 된 날짜 형식을 어떤 식으로 바꿔서 날짜 비교를 할지 였다. 처음에는 일일히 년,월,일을 StringTokenizer를 이용해서 나누고, 이걸 int 형식으로 바꾸고, 필요한 만큼 더하기 한 후, today와 비교 하는 식으로 구현..

알고리즘 2023.05.03

자바 - 프로그래머스 / [1차]캐시

https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr LV 2 구현 방법 0 ≦ cacheSize ≦ 30 cities는 도시 이름으로 이뤄진 문자열 배열로, 최대 도시 수는 100,000개이다. O(n^2)도 가능하다. 큐를 이용하면 조건에 만족하는 사이즈 내에서 LRU를 만족하며 구현 될거라고 생각했다. 그런데 오류가 떠서 생각해보니까 큐 안에 값이 존재하는 경우, 큐 내에서 위치를 업데이트 시켜 줘야 하는걸 깨닮았다. 그런데 또 오류 떠서 보니..

알고리즘 2023.05.02

자바 - 프로그래머스 / 이모티콘 할인 행사

https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr LV 2 구현 방법 1 ≤ emoticons의 길이 = m ≤ 7 이고, 할인 종류는 10, 20, 30, 40으로 4가지 경우가 있다. 따라서 각 이모티콘 마다 모든 할인 종류를 적용해봐도 4^7으로 런타임 에러 걱정은 없다. 1. 이모티콘별 할인 가능한 모든 방법을 재귀 방식으로 구현한다. (중복 순열 개념이용) 2. 할인 가능한 한가지 순열이 나왔을 때, 우선순위가 있는 아래 조건에 따라 ..

알고리즘 2023.04.28

자바 - 프로그래머스 / 광물 캐기

https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr LV 2 구현 방법 핵심 : diamond, iron, stone 갯수 많은 순서로 좋은 곡괭이 쓰면 최소의 피로도를 얻을 수 있다. 1. (곡괭이 수) * 5와 minerals.length 중 작은 값을 iterSize에 저장한다 => "광산에 있는 모든 광물을 캐거나, 더 사용할 곡괭이가 없을 때까지 광물을 캡니다." 이 조건 때문에 해야함. 이거 안하면 test case 8번 오류 뜬다....

알고리즘 2023.04.24