기록의 공유

잊지않기 위한 기록의 공유

Backend/Problem Solving 88

프로그래머스] 타겟넘버

https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 +, - 로 이루어진 그래프가 있다고 생각한다. 해당 그래프를 순회하면서 주어진 숫자배열에 값들을 더하거나 빼면서 target 넘버가 나오는지 확인한다. import java.util.*; class Solution { static int count=0; //결과를 저장할 변수 static char[] d = {'+','-'}; //반복문을 쓸거면 사용할 배열 static public int..

프로그래머스1/상위 n개 레코드/limit

limit는 제일 뒤에 적어준다. https://school.programmers.co.kr/learn/courses/30/lessons/59405 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr -- 코드를 입력하세요 SELECT name from animal_ins order by datetime asc limit 1

프로그래머스4/오프라인/온라인 판매 데이터 통합하기/union,서브쿼리,null

https://school.programmers.co.kr/learn/courses/30/lessons/131537 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr union( 데이터 중복 상관없이 다 합침) union all ( 중복된 데이터는 하나만 냅두고 합침) union한 결과에다가 조건을 붙이고 싶다면 그 결과를 서브쿼리로 사용한다. 서브쿼리에는 별칭부여해야함 Null을 사용해야한다면 Null 쓰고 별칭부여 select * from ( SELECT date_format(sales_date,'%Y-%m-%d') as sales_date, produc..

프로그래머스2/재구매가 일어난 상품과 회원 리스트 구하기/group by 컬럼2개

https://school.programmers.co.kr/learn/courses/30/lessons/131536 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT user_id,product_id from online_sale group by product_id, user_id having count(*) >1 order by user_id,product_id desc group by 속성 2개 사용가능 group by는 그룹화 시킨다. select를 이용해서 조회할때 그룹별 하나씩 값을 조회된다고 생각하면 된다.

프로그래머스4/서울에 위치한 식당 목록 출력하기/group by,join,avg,round

https://school.programmers.co.kr/learn/courses/30/lessons/131118 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT ri.rest_id, ri.rest_name, ri.food_type, ri.favorites, ri.address, round(avg(rr.review_score),2) as score from rest_info ri join rest_review rr on ri.rest_id = rr.rest_id where ri.address like '서울%' group by rest_id ..

★프로그래머스3/베스트앨범/Map,Comparator,class

하나의 Map을 이용해서 풀려고하니 복잡해진 문제 2개의 Map으로 나눠도 좀 복잡하긴하다. Map을 정렬하려면 EntrySet를 이용해서 정렬하던지 Map안에 정렬가능한 List같은 collection객체를 넣던지 해야한다. Map을 EntrySet로 정렬하고 정렬된 EntrySet의 Key(장르)를 이용하여 인덱스를 가져오는 풀이 import java.util.*; import java.util.Map.*; class Solution { public int[] solution(String[] genres, int[] plays) { Map map = new HashMap(); // Map map2 = new HashMap(); // > for(int i=0;i { return map2.get(o2.g..

프로그래머스2/위장 / Hash

https://school.programmers.co.kr/learn/courses/30/lessons/42578 values는 collection으로 , keySet은 set으로 반환되지만 그냥 바로 받아서 사용가능 + 조합의 경우의 수를 잘생각해야한다. import java.util.*; import java.util.Map.*; class Solution { public int solution(String[][] clothes) { int answer = 1; Map map = new HashMap(); for(String[] cloth : clothes) { String category = cloth[1]; map.put(category,map.getOrDefault(category,0)+1); ..

프로그래머스] 완주하지 못한 선수 /Hash

https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 배열 정렬로 풀이 참가자,완주자 명단을 정렬 참가자명단을 반복문을 돌면서 같은 인덱스에 완주자 명단을 보고 이름이 같은지 체크 아니면 완주 못한사람 public String solution(String[] participant, String[] completion) { String answer = ""; if(participant.length == 1) { return participant[..

백준/11404 플로이드 / (최단경로찾기) 플로이드 와샬,다익스트라

플로이드 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 48443 20032 14176 41.698% 문제 n(2 ≤ n ≤ 100)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000)개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다. 모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 버스의 정보는 버스의 시작 도시 a, 도착 도시 b, 한 번 타..

★★★ 백준/13549 숨바꼭질3 / bfs, 다익스트라 알고리즘

숨바꼭질 3 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 512 MB 59673 17254 11099 25.327% 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다...