Algorithm 121

[Lv.2] 짝지어 제거하기 : Java

프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr -정확성 테스트는 통과했지만 효율성 테스트는 실패한 코드 import java.io.*;import java.util.*;class Solution{ public int solution(String s) throws Exception { int answer = 1; // charAt으로 2개씩 같은지 확인하기 while(s.length() > 0 && answer == 1){ answer = 0; for(int i=0; i -정석 풀이 : Stack 이용하기imp..

조이스틱 : Java

각 알파벳을 만들기 위한 상하 조작 최소 횟수 구하기A → B → ... → Z: 위로 i번 (총 26자)A → Z는 아래로 1번이 더 빠름Math.min(char - 'A', 'Z' - char + 1)좌우 이동 최솟값 찾기왼쪽/오른쪽으로 이동하며 커서를 움직여야 함중간에 "A"가 연속될 경우 건너뛰는 전략이 필요기본은 오른쪽으로 name.length() - 1번 이동A가 연속될 경우 뒤로 갔다가 다시 가는 방식이 더 짧을 수 있음➤ Greedy하게 모든 지점에서 연속된 A를 고려하며 최단 이동 계산class Solution { public int solution(String name) { int answer = 0; int length = name.length(); ..

완주하지 못한 사람 : Java

HashMap를 사용해서 이름별 등장 횟수를 저장.participant에서 이름을 모두 +1 하고,completion에서 이름을 -1함.마지막에 value가 1로 남은 사람이 완주 못한 사람*동명이인 조건때문에 이분 탐색은 적절치 Ximport java.util.*;class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; // 완주하지 못한 선수의 이름 HashMap h = new HashMap(); for(String name : participant){ h.put(name, h.getOrDefau..

[Lv.2] 피로도 : Java / DFS+백트래킹

탐험 시작할 때 필요한 최소 필요 피로도탐험 마쳤을 때 소모되는 소모 피로도현재 피로도 k import java.util.*;class Solution { // 현재 피로도 k static int[][] dungeons; // 탐험할 수 있는 최대 던전 수 리턴하기 static boolean[] used; // 던전 방문여부 저장 static int answer = 0; public int solution(int k, int[][] dungeons) { this.dungeons = dungeons; used = new boolean[dungeons.length]; dfs(k, 0); // 방문한 던전 수 0 ..

[프로그래머스 SQL] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기

자동차 종류가 세단 또는 SUV인 자동차 중2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고대여 금액이 50만원 이상 200만원 미만인 자동차>자동차 ID, 자동차 종류, 대여 금액 출력대여 금액 기준 내림차순, 자동차 종류 오름차순, 자동차 ID 내림차순 SELECT CR.CAR_ID, CR.CAR_TYPE, ROUND(((CR.DAILY_FEE * 30)*(100-CP.DISCOUNT_RATE)*0.01),0) AS FEEFROM CAR_RENTAL_COMPANY_CAR CRJOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN CP ON CR.CAR_TYPE = CP.CAR_TYPE AND CP.DURATION_TYPE = '30일 이상'WHERE CR.CAR_TYP..

Algorithm/SQL 2025.07.04
728x90