[프로그래머스 / Java] N으로 표현
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 유형 다이나믹 프로그래밍 문제 풀이 이 문제는 동적계획법, 즉 다이나믹 프로그래밍 을 이용하여 해결할 수 있다. 처음에는 문제에서 주어진 number 와 관련된 점화식을 세워 접근하려 했으나 쉽지 않았다. 그래서 N 의 사용횟수에 따라 가능한 값을 구하는 방식을 사용했다. 이해를 돕기위해 한가지 예를 들어보자. N 이 5일 때, N 의 사용횟수에 따라 가능한 값들은 아래와 같다. N의 사용횟..
[프로그래머스 / Java] 조이스틱
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 유형 그리디 문제 풀이 이 문제는 항상 최선의 경우를 선택하는 그리디 알고리즘을 이용하여 해결할 수 있다. 문제를 해결하기 위해, 조이스틱을 상하로 움직이는 부분과 좌우로 움직이는 부분으로 나눠 구현해야 한다. 상하로 움직이는 부분의 경우 쉽게 구현할 수 있다. name 을 알파벳 별로 차례로 탐색하면서 조작 횟수가 더 작은 방법을 선택하면 된다. 만약 알파벳 Z를 만든다면, A부터 Z까지 ..
[알고리즘 / 프로그래머스 / Java] 메뉴 리뉴얼 (2021 KAKAO BLIND RECRUITMENT)
·
알고리즘/프로그래머스
문제출처: https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 해당 문제를 풀기 위해 많은 시간을 잡아먹었고, 특히나 단순 조합만을 이용하는 것이 아닌 여러 까다로운 조건들이 있어서 쉽지 않았던 문제였습니다. 처음에 접근할때는 손님기준으로 조합을 사용했었지만, 이는 여러 테스트 케이스에서 통과 되지않는 오류가 있어 손님별 메뉴 기준으로 조합을 사용했습니다. 아무래도 전자 방법을 이용하면 여러조건에서 탈락되는 부분이..
[알고리즘 / 프로그래머스 / Java] 124나라 문제
·
알고리즘/프로그래머스
문제출처: https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 해당 문제를 해결하기 위해 많은 시간을 투자했지만, 쉽사리 문제해결 및 효율적인 코드를 작성하는데 있어서 어려움을 겪었습니다. 결국 다른 분의 코드를 참고해서 매우 쉽게 해결할 수 있었던 문제였습니다.. 124나라의 진법? 규칙은 3진법과 매우 흡사하지만 3으로 나누어떨어질때 즉 3진법에서 0이 포함될 경우에만 값이 다르게됩니다. 그 이유는 무엇일까요? 3진법은 0의 표현이 있지만 124나라는 0의 표현이 없기 때문에 발생하는 아주 간단한 문제였습니다. 따라서 코드를 효율적으로 작성하기위해 3진법을 이용하면서 3으로 나누어..
[알고리즘 / 프로그래머스 / Java] 완주하지 못한 선수
·
알고리즘/프로그래머스
문제 : 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { // 정렬 이용 Arrays.sort(participant); Arrays.sort(completion); // ["a", "a", "b", "c"] ["a", "b", "c"] ..