목록Programming/프로그래머스 (42)
조앤의 기술블로그
[문제 설명] https://programmers.co.kr/learn/courses/30/lessons/77487 코딩테스트 연습 - 헤비 유저가 소유한 장소 PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 programmers.co.kr 테이블 - PLACES ID - 공간의 기본키 (PK) NAME - 공간의 이름 HOST_ID - 공간을 소유한 유저의 아이디 서비스에서 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 한다. "헤비 유저"가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성하자. [접근법 & 해설] 1. ..
3진법 수를 만들때 일반적으로 진법 수 만들때 뒤집기가 필요하므로 그냥 그대로 진행하게 되면 reverse된 3진법을 구할 수 있게 된다. [코드] import java.util.*; class Solution { public int solution(int n) { int answer = 0; answer = makeDecimal(makeReverseTernary(n)); return answer; } //1. 3진법으로 만들어주는 함수 + 뒤집기 static String makeReverseTernary(int num){ String ternary = ""; while(num != 0){ ternary += Integer.toString(num % 3); num /= 3; } return ternary..

class Solution { public int solution(int[] a, int[] b) { int answer = 0; for(int i = 0; i < a.length; i++){ answer += a[i] * b[i]; } return answer; } }
문제의 큰 알고리즘 자체는 어렵지 않다. 고민했던 부분은 효율적으로 약수의 개수를 구하는 방법은?? [코드] import java.lang.Math; class Solution { public int solution(int left, int right) { int answer = 0; for(int i = left; i
그냥 풀었는데 다른 풀이법이 또 있으려나? [코드] class Solution { public int solution(int[] absolutes, boolean[] signs) { int answer = 0; for(int i = 0; i < absolutes.length; i++){ if(signs[i] == false){ answer -= absolutes[i]; }else{ answer += absolutes[i]; } } return answer; } }
[접근법] Set으로 변환해서 번호 포함 여부 확인한다. 일치 개수 확인 → 최저 등수 일치 개수 확인 + 모르는 번호 개수 → 최고 등수 개수 별 등수 확인은 → case문으로 [코드] import java.util.*; class Solution { public int[] solution(int[] lottos, int[] win_nums) { int[] answer = new int[2]; int lowRank = -1; int highRank = -1; Set lottosSet = new HashSet(); Set winSet = new HashSet(); for(int i = 0; i < lottos.length; i++){ lottosSet.add(lottos[i]); winSet.add(wi..
노드 클래스를 만드는게 포인트! 그리고 우선순위 큐를 이용해 x, y 좌표에 따라 정렬하는 것도 포인트! import java.util.*; class Solution { static int idx = 0; static class Node { int x; int y; int idx; Node left; Node right; Node(int x, int y, int idx){ this.x = x; this.y = y; this.idx = idx; left = null; right = null; } } public int[][] solution(int[][] nodeinfo) { int[][] answer = new int[2][nodeinfo.length]; PriorityQueue pq = new Pri..
[1차코드] - 실패 테스트케이스는 통과했으나 효율성에서 통과하지 못했다. import java.util.*; class Solution { public long[] solution(long k, long[] room_number) { long[] answer = new long[room_number.length]; boolean[] room = new boolean[(int)k+1]; Arrays.fill(room, false); int i = 0; for(long r : room_number){ if(room[(int)r] == false){ // 방이 비어있다. room[(int)r] = true; answer[i++] = (int)r; }else{ for(int j = (int)r ; j < ro..