PS/Programmers(8)
-
타겟 넘버
[문제 접근법] - 해당 숫자들로 Target 숫자를 만들 수 있는지 모든 경우의 수를 구하여 그 값을 리턴하면 된다. 아래의 그림 1의 예시로 모든 경우의 수를 구해보자(아래 표 참고) 모든 경우의 수 numbers[0] numbers[1] numbers[2] numbers[3] numbers[4] 총합 +1 +1 +1 +1 +1 5 +1 +1 +1 +1 -1 3 +1 +1 +1 -1 +1 3 +1 +1 +1 -1 -1 1 +1 +1 -1 +1 +1 3 +1 +1 -1 +1 -1 1 +1 +1 -1 -1 +1 1 +1 +1 -1 -1 -1 -1 +1 -1 +1 +1 +1 3 +1 -1 +1 +1 -1 -1 ... ... ... .. .. .. 위의 표처럼 모든 경우의 수를 구하여 총합이 target과 ..
2022.03.31 -
네트워크
[문제 접근법] - 트리 탐색 중 깊이 우선 탐색(DFS)을 이용하여 네트워크 개수를 반환하였다. https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr [구현 1] - DFS 탐색 및 중복 방문을 막기 위해(boolean [] visit)을 이용하여 네트워크 개수를 구하였음 searchNetwork 함수가 재귀적으로 깊이 우선 탐색을 한다. package com.codingtest.programmers.lev..
2022.03.30 -
[KAKAO] 오픈채팅방
[문제 접근법] - id(key), nickname(value) 인 map을 이용하여 문제를 해결하였다. https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr [구현1] - Leave 액션을 제외한 나머지 액션들에 대해서 id에 해당하는 nickname을 계속 변경하였음. public Map makeAcation(){ Map action=new HashMap(); action.put("Enter","님이 들어왔습니..
2022.03.30 -
[Summer/Winter Coding(~2018)] 스킬트리
[문제 접근법] - Topology Sort 개념을 적용하여 해당 스킬의 선행스킬이 먼저 배웠는지 확인하였다. 자세한건 아래 소스코드를 보면서 설명하겟습니다. 토폴로지 정렬이 궁금하다면? 🙄😲 https://m.blog.naver.com/ndb796/221236874984 https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr [구현 1] 1. 선행스킬 그래프와 후행스킬 그래프를 만든다. 2. 스킬트리를 하나씩 루프를 돌아 해당 스킬의 후행 스킬 찾는다. 2-1. 후행 스킬이 존재한다면 후행 스킬의 선행 스킬을 제거한다. 2-2. 후행 스킬이 존재하지 않는다면 어떠한 연산도 하지 않는다. 3. 만약..
2022.03.29 -
더 맵게
[문제 접근법] - 최소 힙을 만들어서(우선순위 큐 사용) 최솟값을 하나씩 우선순위 큐에서 꺼낸다. 가장 맵지않은 음식이 K보다 적으면 그림 1처럼 두 번째로 맵지 않은 음식과 섞는다. 그리고 아래 연산을 한 후 다시 최소 힙에 넣는다. 만약 최소 힙의 가장 맵지 않은 음식의 스코빌 값이 K 이상이면 return 하여 끝낸다. https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr [구현 1] 1. 최소..
2022.03.24 -
[2021 Dev-Matching] 다단계 칫솔 판매
[문제 접근법] - 맵을 이용 하여 그래프를 만든 후 아래에서부터 위로 탐색하면서(ex. young -> edward -> mary -> center) 비용 정산을 한다. 최적화를 위해 분배되는 금액(이익금의 10%)이 0보다 클 때만 비용 정산을 하도록 접근하였다. https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr [구현 1] 1. 그래프를 만든다 2. seller의 금액을 그룹화시킨다. 3. 깊이 우선..
2022.03.23