알고리즘,PS/프로그래머스

https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📝문제 📝풀이 가장 큰 수를 만들기 위해서 배열안의 수를 큰 수가 될 수 있는 조건으로 정렬을 해야한다. 만약 [ 3, 30, 34 ] 안의 우위를 정할 때 기준운 문제에 나와 있듯이 각각 수를 이어 붙였을 때 제일 큰 수로 하면 되므로 정렬 조건은 (s1, s2) -> (s2 + s1).compareTo(s1 + s2) 추가로 [0, 0, 0, 0] 일 경우엔 0만 리턴하도록 예외처리. impo..
https://school.programmers.co.kr/learn/courses/30/lessons/176962# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📝문제 📝풀이 과제 진행의 우선순위는 1. 시간 2. 최근에 멈춘 과제 이다. 1. 과제를 시간순으로 먼저 정렬해두고 하나씩 진행 2. 현재 과제를 딜레이 시키지 않고 처리할 수 있는 경우 처리 2-1. 밀린 과제가 있는 경우 밀린 과제 스택에서 하나를 꺼내서 다음 처리 과제 대상에 넣음 2-2. 밀린 과제가 없는 경우 다음 과제를 진행 3. 현재 과제를 딜레이 시켜야 할 경우는 현재 시간과 ..
https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr [문제] [풀이] 특정 거리까지의 마을만 배달이 가능하기 때문에 모든 정점에 대해 거리의 합을 알아야 한다 하지만 출발지는 고정되어 있다. => 다익스트라 알고리즘 이용 각 정점에 대한 거리 배열을 Distance라고 하면 주어진 K 보다 낮은 값을 가진 마을의 개수를 카운트 하면 된다. import java.util.stream.*; ..
https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr [문제] [풀이] 완전탐색 + 그리디 문제이다. 1. 맞출 수 있는 모든 과녁을 중복을 포함하게 탐색할 것 2. 누군가 득점을하면 나머지 하나는 득점을 하지 못함 3. 가장 낮은 점수를 많이 맞춘 순 으로 리턴할 것 이 세가지만 만족하면서 탐색하여 depth 가 주어진 n 만큼 진행하고 정산한 결과를 리턴해주면 된다. import java.util.*; import ..
https://programmers.co.kr/learn/courses/30/lessons/92343 코딩테스트 연습 - 양과 늑대 [0,0,1,1,1,0,1,0,1,0,1,1] [[0,1],[1,2],[1,4],[0,8],[8,7],[9,10],[9,11],[4,3],[6,5],[4,6],[8,9]] 5 [0,1,0,1,1,0,1,0,0,1,0] [[0,1],[0,2],[1,3],[1,4],[2,5],[2,6],[3,7],[4,8],[6,9],[9,10]] 5 programmers.co.kr [문제] [풀이] 처음엔 트리 DP 문제인줄 알고 접근했었다가 다시 돌아올 수 있다는 조건때문에 풀지 못했었다. 이 문제는 오히려 중복체크를 하지 않아도 되기때문에 그리디+탐색으로 충분히 풀 수 있었다. 1. 탐색..
https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr [문제] [풀이] 입력이 IN 이면 주차를 시켜야하고 OUT이면 출차시키고 주차된 시간을 누적시킨다음 요금을 계산해야한다. 현재 주차 상태를 나타내는 HashMap 총 시간누적을 나타내..
https://programmers.co.kr/learn/courses/30/lessons/92335 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr [문제] [풀이] 1. 진수 변환하기 2. "0"을 기준으로 나누기 3. 소수 판별해서 카운트하기 이렇게 진행하면 쉽게 풀리는 문제이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 import java.u..
https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr [문제] [풀이] 신고기준 횟수k 를 넘어 신고를 당한사람을 블랙처리하고 그 결과를 신고한 사람에게 배열형태로 알려주는 문제이다. 우선 Map를 사용함으로써 의 형태로 상황을 유지시킨다. 같은사람이 여러번 신고한 경우를 필터링하기위해 key를 신고당한사람, value를 HashSet으로 함으로써 중복을 기본적으로 걸러낸다. HashMap은 기본적으로 데이..
김까따
'알고리즘,PS/프로그래머스' 카테고리의 글 목록