Banner

My Tech Blog (Java)

📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/129811. 문제 요약 [탈락자 번호, 탈락할 차례] 형태로 리턴탈락자가 없으면 [0, 0]💡 2. 풀이과정1. 누적 단어를 어떻게 저장할까?그동안 나온 단어를 HashSet 저장하고 현재 단어가 이미 HashSet에 포함된 단어라면 탈락2. 탈락 조건이미 나온 단어 말함 → 아웃끝말잇기 규칙 위반(이전단어 마지막글자 != 현재 단어 첫글자) → 아웃3. 탈락자 정보 계산(탈락 단어 인덱스 % n) + 1 → 사람 번호 계산(탈락 단어 인덱스 / n) + 1 → 차례 계산👨‍💻 3. 정답코드import java.util.*;class Solution { public int..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/76502문자열 s는 (), [], {} 괄호로만 이루어져 있다.문자열 s를 왼쪽으로 x칸 회전시킬 수 있다.예: s = "[]()", x=1 → "]()["회전된 문자열이 올바른 괄호 문자열이라면 카운트한다. 0 ≤ x 👉 올바른 괄호 문자열 조건 (), [], {} 자체는 올바르다.올바른 괄호 문자열을 괄호로 감싸도 올바르다.예: [] → ([]) 가능올바른 괄호 문자열을 이어 붙여도 올바르다.예: {} + ([]) → { } ( [ ] )💡 2. 풀이과정​회전 어떻게 구현할 것인가?substring으로 구현`String rotated = s.substring(i) + s.su..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/131127회원이 원하는 제품(want[]) 과 그 수량(number[]) 이 주어진다.예: want = ["banana", "apple"], number = [3, 2]→ 바나나 3개, 사과 2개를 원한다는 뜻마트에서 할인하는 품목이 날짜별로 순서대로 배열(discount[]) 로 주어진다.예: discount = ["chicken", "apple", "banana", "banana", "banana", "apple", ...]회원은 10일 연속으로 마트에서 장을 본다.즉, discount 배열에서 연속된 10일 구간을 하나 선택한다.이 10일 구간 안에서 회원이 원하는 제품을 원하..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/17681지도는 정사각형 배열 형태로 각 칸은 공백(" ") 또는 벽("#")이다.지도 두 개를 겹쳤을 때 하나라도 #이면 벽둘 다 공백이면 공백지도 1과 지도 2는 각각 정수배열로 암호화 되어 있음 벽은 1공백은 0각 줄마다 1과0으로 이루어진 이진수의 합매개변수로 지도의 한 변의 길이 n, arr1, arr2 주어짐원래의 비밀 지도를 해독해서 '#', 공백으로 구성된 문자열 배열로 출력하기💡 2. 풀이과정arr1과 arr2에서 숫자 하나씩 가져와서 OR 비트연산비트연산 결과 이진수로 변환오른쪽 정렬, 자리수 n으로 맞추기"1"은 "#"으로, "0"은 " "으로 치환배열에 담아 r..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/129801. 문제 요약 K칸 점프 → K만큼 건전지 소비현재까지의 거리 * 2로 순간이동 → 건전지 소비 X거리 n까지 이동하는데 드는 최소 건전지의 개수 리턴아래 예시에서 방법 3이 가장 적은 건전지 소비💡 2. 풀이과정솔직히 10분 넘게 생각해봤는데 어떻게 구현 해야 할 지 1도 감이 안 와서 남의 코드 보고 풀었다. 그리고 홀수 판별식 n % 2 == 1 를 이렇게도 쓸 수 있다. (n & 1) == 1👨‍💻 3. 정답코드class Solution { public int solution(int n) { int battery = 0; while..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/12945💡 2. 풀이과정피보나치 수는 수학에서 아주 유명한 수열이다. 가장 기본적인 정의는 아래와 같다.첫 번째 수는 0두 번째 수는 1세 번째 수부터는 앞의 두 수를 더한 값0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...이런 식으로 계속 이어진다. 0 + 1 = 1 1 + 1 = 2 1 + 2 = 3 2 + 3 = 5 3 + 5 = 8 ... 이런 규칙이다.👨‍💻 3. 정답코드class Solution { public int solution(int n) { // n 번째 피보나치수 % 1234567 int MOD ..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/250121💡 2. 풀이과정처음에는 푼 방법switch-case문으로 ext와 sort_by에 따라 인덱스값 정하기data 배열을 순회하며 ext 정렬은 람다식으로 처리리스트를 다시 int[][] 로 바꾸어서 반환했다.import java.util.*;class Solution { public int[][] solution(int[][] data, String ext, int val_ext, String sort_by) { List list = new ArrayList(); int idx = 0; // 필터 인덱스 int sortIdx = ..
· Java
⚠️ 문제 프로그래머스에서 코테 풀던 중 아래와 같은 에러 메세지 발생local variables referenced from a lambda expression must be final or effectively final🧐 원인직역하면 람다 안에서 참조하는 지역 변수는 final이거나 사실상 변형되지 않아야 한다는 제약이 있다는 것이다. 나의 코드에서 sortIdx를 람다 안에서 사용하려는데 그 전에 switch-case문에서 값을 바꿨기 때문에 effectively final 이 아니라고 판단해서 에러가 난 것이다. // 1. ext list = new ArrayList(); int idx = 0; // 필터 인덱스 int sortIdx = 0; // 정렬 인덱스 ..
인절미였던것
'Java' 태그의 글 목록 (3 Page)
상단으로