전체 글

말보다는 실천하는 사람
🔍 아이디어 ✅ _!(, {, [!_ 가 확인되면 스택에 담고, 닫는 부호가 확인되면 스택에서 꺼내 비교한다. ✅ 비교결과 짝이 맞지 않거나, 순회를 종료한 시점에 스택 내 남은 괄호가 있다면 _!false!_ 처리 import java.util.*; class Solution { Map map = new HashMap(); public int solution(String s) { int answer = 0; map.put(']', '['); map.put('}', '{'); map.put(')', '('); StringBuilder sb = new StringBuilder(s); if (check(sb.toString())) { answer++; } for (int i = 0; i < sb.length..
🔍 아이디어 ✅ 지원자들의 스펙을 가능한 모든 경우의 수를 구해 _!Map!_ 의 _!key!_ 로 저장한다. ✅ 저장한 곳의 _!value!_ 에는 지원자의 점수를 저장해두고, 모든 순회가 종료되면 오름차순으로 정렬한다. ✅ _!query!_ 를 저장해둔 _!key!_ 의 형태로 변환하고 저장된 값이 있는지 찾는다. ✅ 값이 있다면, _!query!_ 의 코딩 기준 점수보다 높은 사람이 몇 명이 있는지 구하고, _!answer!_ 변수에 담아 반환한다. import java.util.*; class Solution { Map map = new HashMap(); public int[] solution(String[] info, String[] query) { int[] answer = new int[q..
▪️ 업무를 포함한 루틴에 익숙해지다보면, 어느샌가 사고가 경직되고 시야가 좁아진 듯한 기분이 든다. 그러던 중 를 읽게 되었고, 나에게는 다소 어려운 내용이었지만 새로운 감각이 활성화되는 기분이었다. 완독 후 아쉬운 마음에 다른 책들을 찾다보니, 가 있다는 걸 알게 되었다. 나의 경우에는 업무 중 JS를 비중 높게 사용하고 있어, 시리즈 중에서는 가 책 분량이 적어 만만히 보이기도 하고 '읽어 볼만 하겠다' 싶었다. 또한, 현재는 JS를 프론트엔드 부분에서만 활용하고 있지만 백엔드 분야에서도 활용할 가치가 높기 때문에 선택하게 되었다. ▪️ 구성은 총 68개의 아이템(주제)으로 이루어져 있고 각 아이템 별로 짧고 읽기 좋은 글이 쓰여있다. 그 중 나는 네 가지의 아이템이 인상 깊었다. ✅ 아이템11 클..
import java.util.*; class Solution { public int solution(int[][] triangle) { for (int i = triangle.length - 1; i > 0 ; i--) { for (int j = 0; j < triangle[i].length - 1; j++) { triangle[i - 1][j] += Math.max(triangle[i][j], triangle[i][j + 1]); } } return triangle[0][0]; } } ✔️ 링크 : 코딩테스트 연습 - 정수 삼각형 | 프로그래머스 스쿨 (programmers.co.kr)
🔍 아이디어✔️ 주어진 숫자를 이진수로 변환하고, 이진수를 이진트리로 표현할 경우의 최대 깊이를 구한다. ✔️ 최대 깊이를 통해 최대 노드 개수를 계산하고, 부족한 노드만큼 _!0!_ 을 붙여 완전포화이진트리로 만든다. ✔️ 중앙 인덱스 값을 체크하면서 완전포화이진트리 검증한다.import java.util.*; class Solution { // 정답 배열 static int[] ans = null; public int[] solution(long[] numbers) { ans = new int[numbers.length]; Arrays.fill(ans, 1); for (int i = 0; i < numbers.length; i++) { String binary = Long.toBinaryString(..
🔍 아이디어 ✔️ 각 점수별 점수 획득 조합 계산 ✔️ 계산된 조합별 점수 차를 계산하고 디테일한 조건을 맞춰준다 - 최대 점수 차로 승리해야한다. - 점수 차가 동일하다면 낮은 점수의 과녁을 많이 맞춘 경우의 수를 반환한다. - 이길 수가 없다면 _!-1!_ 로 반환한다. import java.util.*; class Solution { static List permu = new ArrayList(); public int[] solution(int n, int[] info) { int[] answer = {}; int[] bucket = new int[11]; int[] maxArr = new int[11]; int maxGap = 0; getCombination(0, bucket); for (int[..
🔍 아이디어 ✔️ 시계방향으로 회전하며 배열 값을 바꿔주는 문제 ✔️ 복잡한 알고리즘 대신 직접 _!for!_ 문을 구현, 간단하게 풀 수 있었다. import java.util.*; class Solution { public int[] solution(int rows, int columns, int[][] queries) { int[] answer = new int[queries.length]; int[][] field = new int[rows][columns]; int count = 1; for (int i = 0; i < field.length; i++) { for (int j = 0; j < field[0].length; j++) { field[i][j] = count; count++; } } ..
🔍 아이디어 ✔️ 반복문의 시작에서 정답요건을 검증한다. ✔️ 요건에 충족되지 않은 경우, 합이 큰 쪽에서 작은 쪽으로 자신의 배열 요소를 넘겨준다. ✔️ 한 쪽 배열의 크기가 0이 되어도 정답이 나오지 않았거나, count가 비정상적으로 커진 경우는 체크해서 해결 불가능한 케이스로 처리한다. import java.util.*; class Solution { public long solution(int[] queue1, int[] queue2) { Queue q1 = new LinkedList(); Queue q2 = new LinkedList(); long sum_q1 = 0; long sum_q2 = 0; for (int i : queue1) { sum_q1 += (long) i; q1.add((lo..
thisisdj
codenextdoor