본문 바로가기

알고리즘8

[Algorithm] N으로 표현 https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr 해당 문제는 주어진 숫자를 최소한 으로 반복하여 원하는 숫자를 만들어 내는 문제이다. 처음 문제를 보고 생각했을 때 문제유형을 보고 DP 접근 방식으로 풀이를 생각했다. ~~를 하기위한 최소한의 방법 같은 문제를 보았을 때 DP를 떠올리자 ( 하지만 난 생각이 나질 않아유형을 봐서 알아냈음... 경험치가 부족한거 같다.) DP 의 인덱스 접근을 아래와 같이 정이해봄 DP[ i ] => 주어진 숫자를 i 번 사용하여 만들수 있는 숫자들 DP의 값이 여러 숫자가 가능하기 때문에 List 형태로 선언함. public int solution(int.. 2022. 3. 30.
[Algorithm] 프로그래머스 - 디스크 컨트롤러 https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 힙큐를 이용한 풀이법. 변수 설명 jobs 배열 -> { 들어온 시간, 처리되는 시간 } 풀이법 하나의 처리가 종료되어야 다음 처리가 가능하기 때문에 큐를 이용해 들어온 처리들을 큐에 넣고 하나씩 꺼내면서 처리를 수행한다. 큐에서 꺼내어 처리 할 때마다 종료시간을 계산한다. 큐에 넣는 조건 현재 처리중인 노드의 종료시간을 계산. 종료시간보다 같거나 작은 시.. 2022. 3. 21.
[Algorithm] 프로그래머스 - 네트워크 https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 위 문제는 양방향 그래프를 형성하고 전체 그래프를 순회하면서 몇개의 그룹이 존재하는지 판단하는 문제이다. 먼저 입력에 대한 그래프를 생성한다. 그래프를 작성하는 코드는 다음과 같다. (배열을 이용함) 배열의 의미 ( graph[ i ][ j ] = i번째 노드와 j번째 노드가 연결 되어있으면 1, 아니면 0 ) int[][] graph; public int.. 2022. 3. 21.
[Algorithm] KAKAO - [1차] 추석 트래픽 https://programmers.co.kr/learn/courses/30/lessons/17676 2022. 3. 8.
[Algorithm] 카카오2022 - 신고 결과 받기 카카오 2022년 Level 1 (프로그래머스 기준) 문제이다. http://https://programmers.co.kr/learn/courses/30/lessons/92334 문제풀이 방법으로 처음 생각했던 방식이다. 이름별로 신고한 이름을 리스트로 만들고 이름이 리스트에 존재하지 않을때만 신고한 이름을 추가한다. (중복신고 불가능하기 때문) 이후 리스트에 추가 되면 해당 이름의 신고 카운트를 1 증가시킨다. 처음 작성한 코드 import java.util.*; import java.util.stream.Collectors; class Solution { public int[] solution(String[] id_list, String[] reports, int k) { int[] answer = .. 2022. 3. 2.