목록알고리즘 (13)
발전하는 개발자가 되자
프로그래머스 알고리즘 (java) 소수 찾기 프로그래머스 (소수 찾기) 코드 리뷰 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하는 문제입니다. 조건 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. ex) 013, 031, 3, 1, 10, ... 등 뽑을 수 있는 모든 경우가 가능 풀이 방향 저는 맨 처음 조합으로 풀면 될 것이다 생각했습니다. 그래서 조합을 구하는 제귀 메소드와 소수를 판별하는 메소드를 조합하면 될 것 이라 예상했습니다. 하지만 조합으로 풀면 순서를 생각 하지 ..
프로그래머스 알고리즘 (java) 전화번호 목록 프로그래머스 (전화번호 목록) 코드 리뷰 조건 String 배열의 요소가 다른 요소에 접두사면 false 아니면 true 접두사 확인은 String 의 startWith(string) 메소드를 활용 하면 쉽습니다. public boolean solution(String[] phone_book) { boolean answer = true; for (int i = 0; i 1) { return fals..
프로그래머스 알고리즘 (java) 베스트앨범 프로그래머스 (베스트앨범) 코드 리뷰 저는 먼저 음악으로 클래스를 나누고 장르로 그 클래스들을 감싸서 내림차순으로 정렬 시켰습니다. 객체를 두개로 나누고 override 메소드까지 구현하니 조금 코드 길이가 길어진거 같습니다. import java.util.*; public class BestAlbum { public int[] solution(String[] genres, int[] plays) { int[] answer = {}; List answerList = new ArrayList(); List genresList = new ArrayList(); for (int i = 0; i < genres.length; i++) { if (!genresList...
프로그래머스 알고리즘 (java) 위장 프로그래머스 (위장) 내가 작성한 코드 set 으로 카탈로그를 뽑아내고 카탈로그별 숫자를 구해 각각 곱해줘 경우의 수를 구했다. set을 안쓰고 리스트를 써도 될 것 같다. public class Camouflage { public int solution(String[][] clothes) { int answer = 1; Set category = new HashSet(); for (String[] clothe : clothes) { //카태고리가 없으면 카태고리 생성 if (!category.contains(new Category(clothe[1]))) { category.add(new Category(clothe[1])); } else { // 있으면 그 카태고..
프로그래머스 알고리즘 (java) 가장 큰 수 프로그레머스 가장 큰 수 내가 작성한 코드 문자열로 변환하고 sort 해서 다 더해 출력함 다른 사람들도 비슷한 방식으로 푼거 같다. public String solution(int[] numbers) { String answer = ""; List stringList = new ArrayList(); for (int anInt : numbers) { stringList.add(String.valueOf(anInt)); } stringList.sort(((o1, o2) -> (o2 + o1).compareTo(o1 + o2))); for (String s : stringList) { answer += s; } return answer.charAt(0) == ..