반응형

2025/03/18 3

[프로그래머스/Java] 섬 연결하기(Greedy 문제) 풀이

프로그래머스 알고리즘 고득점 Kit의 Greedy 파트 문제 중 하나인 '섬 연결하기'를 자바를 이용하여 풀어보았다. https://school.programmers.co.kr/learn/courses/30/lessons/42861# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   접근 자체는 크게 어렵지 않다. 그냥 cost가 작은 순으로 costs 배열을 정렬해 주고, costs 배열을 순회하면서 아직 이어지지 않은 섬들을 이어주는 cost를 answer에 더해주고 리턴하면 된다.  이때, 아직 이어지지 않은 섬은 boolean 2차원 배열인 isLinked를 만들어서 확인해주었다. 다만 처음에는..

[프로그래머스/Java] 구명보트(Greedy 문제) 풀이

프로그래머스 알고리즘 고득점 Kit의 Greedy 문제 중 '구명보트' 문제를 자바로 풀어보았다.https://school.programmers.co.kr/learn/courses/30/lessons/42885# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr    우선 처음에 접근할 때는 아래 코드와 같이 리스트로 풀어보았다. 답은 전부 맞았으나, 효율성 측면에서 틀린 답이라고 나왔다.  List에 쓰고 지우는 과정이 시간효율성이 떨어져서 생긴 문제라고 생각해서 List로 변환하는 과정을 제거하고 Array로 바로 처리하는 방식으로 변경했다.import java.util.*;class Solution ..

[프로그래머스/Java] 큰 수 만들기(Greedy 문제) 풀이

프로그래머스 알고리즘 고득점 Kit의 Greedy 파트 문제 중 하나인 '큰 수 만들기'를 자바로 풀어보았다. https://school.programmers.co.kr/learn/courses/30/lessons/42883# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   순간순간의 최선을 찾는 Greedy 알고리즘의 특성을 이용하여, 바로 뒤 자신보다 큰 수를 방해하는 바로 뒤의 숫자보다 작은 첫 번째 숫자를 삭제하는 것을 k번 반복했다. 이때, 원래 j를 매 loop의 반복마다 1로 초기화했었는데, 딱 한 문제에서 시간초과가 발생했다. 그래서 굳이 다시 맨 처음으로 가는 게 아닌, 삭제한 바로 ..

728x90
반응형