본문 바로가기

프로그래머스25

[알고리즘] 프로그래머스 - 카펫 (완전탐색) 1. 문제 2. 풀이 중앙은 노란색으로 칠해져 있고, 나머지는 갈색으로 칠해져 있는 직사각형(정사각형) 모양의 카펫의 가로 세로 길이를 구하는 문제였다. 우선 사각형 형태이므로 갈색 격자 개수와 노란색 격자 개수를 더한 수는 무조건 짝수가 나올 것이다. 우선 2개를 더한 수의 약수들을 구한다. 그리고 가로의 길이가 더 크므로 i와 곱해서 sum이 나오는 숫자가 가로의 길이가 된다. 그리고 나서 주어진 모양을 만족하는지 검사를 한다. 가로는 2개 이므로 가로 길이에 2를 곱해서 구해주고, 세로도 마찬가지로 2개지만 가로 길이를 구할때 각 사각형의 맨끝을 가로길이에서 이미 포함하고 있기 때문에 4를 빼준다. 그러면 쉽게 답을 구할 수 있다. class Solution { public int[] calRect.. 2020. 7. 30.
[알고리즘] 프로그래머스-모의고사 (완전탐색) 1. 문제 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작.. 2020. 6. 16.
[알고리즘] 프로그래머스-가장 큰 수 1. 문제 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 2. 나의 코드 import java.util.*; .. 2020. 6. 14.
[알고리즘] 해시 알고리즘 패턴 여러개의 해시 문제를 풀면서 이 알고리즘 문제 유형의 패턴을 분석해보기로했다. 1. 해시 알고리즘 문제인지 파악 문제에서 key와 value로 값으 저장해야한다면 해시 문제일 확률이 높다. 이럴 경우 HashMap 객체를 만들어서 그 안에 key와 value로 저장하고 활용하도록 한다. 2. 자주 사용하는 메소드 2.1 get, put, remove 메소드 map객체를 사용하는 기본 메소드이다. 각각 key값에 해당하는 값 조회, 입력, 삭제를 담당한다. map.get(key); map.put("값입력"); map.remove(key); 2. HashMap 객체 생성 아래 코드는 Key가 String이고, value가 Integer인 경우이다. HashMap map = new HashMap(); 2.3 .. 2020. 6. 14.
[알고리즘] 프로그래머스-베스트앨범 1. 문제 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니.. 2020. 6. 12.
[알고리즘] 프로그래머스-위장 1. 문제 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothes의 모든 원소는 문자열로 이루어져 있습니다. 모든 문자열의 길이는 1 이상 20 이하인 .. 2020. 6. 12.