알고리즘/프로그래머스 LV28 프로그래머스 LV.2 구명보트 https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명 : 무인도에 갖힌 사람들을 구해야한다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없다.[70, 50, 80, 50] 을 예를 들면 2번째 4번째 사람과 같이 탈 수 있지만, 1번째 3번째 사람은 limit가 초과해서 안된다.문제 출력 조건은 구명보트를 최대한 적게 사용하여 모든 사람을 구출 해야한다. 문제 해설 : 최대 2명씩 이라는 조건을 보았을때 투 포인터 알고리즘을 떠올렸으면 성공이다.배열을 Arrays.sort() .. 2025. 2. 4. 프로그래머스 LV2 ( 디펜스 게임 ) https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr * 남은 병사수와 무적권의 횟수를 잘 사용하여 최대로 막을 수 있는 횟수를 반환하면 되는 문제.* 처음에는 병사수를 최대한 사용하고 무적권을 사용하면 되는줄 알았다.* 그렇게 구현하기 쉽지않았고 결국 문제 풀이를 보니까 pq를 사용한 풀이였다.* enemy 배열을 순차적으로 한개씩 가져와서 문제를 풀어야한다. ( 적은 인덱스 0번부터 접근하니까 )* enemy 배열에 접근을 순차적으로 해서 무적권 갯수만큼은 pq에 저장하고 continue 한.. 2025. 1. 30. 프로그래머스 뒤에 있는 큰 수 찾기 ( LV 2 ) https://school.programmers.co.kr/learn/courses/30/lessons/154539?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr * 문제 제목 그대로 뒤에 있는 숫자중 가장 큰 숫자를 고르는 것이다. + 제일 가까이 있는 숫자중에서.* 처음에는 BruteFroce를 돌려서 현재 숫자보다 큰 숫자가 등장하면 break를 걸고 결과를 갱신하는 코드를 작성했는데 시초가 났다.* 아무리 짱구를 굴려봐도 답이 안나와서 GPT한테 물어봤다. * Stack을 활용하면 O(N) 시간 복잡도로 끝낼수 있다.* 알고리즘 흐름을 설명하면. 1) numbers 길이.. 2025. 1. 21. 프로그래머스 귤 고르기 ( LV 2 ) + entrySet() 활용 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr - 귤의 갯수를 가장 적은 가짓수로 담으면 되는 문제이다.- 갯수를 큰거를 기준으로 정렬 후 담으려는 k개 보다 크거나 같으면 그 횟수를 return 시켜주면 된다.- 코드레벨로 구현하면서 Map에 있는 key와 value를 모두 접근이 필요한 상황에 entrySet() 으로 접근이 가능하다는 것을 알았다.- 문제 푸는 방법은 간단하니 entrySet() 접근 방법을 정리하고 마치겠다. * Java Map의 entrySet()이란? - Jav.. 2025. 1. 21. 프로그래머스 : 연속 부분 수열 합의 갯수 ( LV 2 ) https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr * 원형으로 구현된 배열의 모든 연속된 부분 집합의 갯수들을 구하는 문제.* 아이디어는 생각해냈지만 구현 방법에서 막혀서 답을 보았습니다.* 필자의 아이디어 - 우선 Set 자료구조를 사용해서 최종 결과를 반환한다. - Queue 자료구조를 사용해서 길이가 2인 부분 집합의 갯수를 구하려면 2번 pop() 하고 순서대로 2번 push() 하는 방법을 파라미터인 elements 길이만큼 진행하는 것이다. 3일때도 4일때도 마찬가지. - 2번, .. 2025. 1. 19. 프로그래머스 : 숫자 변환하기 ( LV 2 ) https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr * 문제 딱 보자마자 bfs..? 풀수 있을거 같은데? 생각이 든 문제.* 고민 끝에 bfs 알고리즘으로 풀었지만 예외처리를 안해줘서 틀렸다.* 각 결과마다 +n, *2, *3을 한 값을 Queue에 넣어주면되는데, 예외처리로 y값을 넘기지 않는 선에서 넣어야한다.* 끝이다. 코드로 구현하면 된다. import java.io.*;import java.util.*;class Solution { int answer = 0; boolea.. 2025. 1. 14. 이전 1 2 다음