알고리즘 78

[프로그래머스] 위장 java / HashMap 사용

처음에는 해시맵에 넣어서~~ 명칭으로 맵으로 만드는 방법도 헤매고~~ 그랬지만 이렇게 간단하게 풀 수 있었다.;; import java.util.HashMap; import java.util.Iterator; class Solution { public int solution(String[][] clothes) { int answer = 1; HashMap clothesmap = new HashMap(); for (int i = 0; i < clothes.length; i++) { String key = clothes[i][1]; if (!clothesmap.containsKey(key)) { clothesmap.put(key, 1); } else { clothesmap.put(key, clothesmap..

[프로그래머스] 전화번호 목록 java /효율성 성공! Arrays.sort

나의 풀이 class Solution { public boolean solution(String[] phone_book) { boolean answer = true; for (int i = 0; i < phone_book.length; i++) { for (int j = 0; j < phone_book.length; j++) { if (i==j) { continue; } if (phone_book[j].matches(phone_book[i]+"(.*)")) { answer=false; } } } return answer; } } 테스트 케이스는 통과했지만 효율성에서 모두 실패! matches대신 if(phone_book[j].indexOf(phone_book[i])==0) indexOf를 써도 케이스는 ..

[프로그래머스] 가장 큰 수 java / 정렬/ Comparator, compare, compareTo 메소드로 String 오름차순 내림차순 정렬

import java.util.Arrays; import java.util.Comparator; public class solution { public String solution(int[] numbers) { String answer = ""; String[] str = new String[numbers.length]; for (int i = 0; i < numbers.length; i++) { str[i] = String.valueOf(numbers[i]); } Arrays.sort(str, new Comparator() { @Override public int compare(String a, String b) { return (b+a).compareTo(a+b); } }); if(str[0].equ..

[프로그래머스] 모의고사 java / 완전 탐색 / 완전 탐색 패턴은 나머지 연산자로

1. 문제 길이가 예시보다 더어어어길게 주어지면 정답은 패턴을 가지고 반복한다. 2. 몇 개 맞았는지를 카운트 한다. 3. 개수가 가장 많은 인덱스를 출력하도록 하겠다. import java.util.*; public class solution { public int[] solution(int[] answers) { int[][] patterns = { {1,2,3,4,5}, {2,1,2,3,2,4,2,5}, {3,3,1,1,2,2,4,4,5,5} }; //순서대로 몇개 맞았는지 카운트 int[] hit = new int[3]; for (int i = 0; i < hit.length; i++) { for (int j = 0; j < answers.length; j++) { if (patterns[i][j..

[프로그래머스] k번째 수 java / 배열 자르기 / 배열 정렬 /Arrays.copyOfRange

1. 먼저 array를 commands[i][0] 인덱스 부터 commands[i][1]인덱스까지 자른다 2. 그 배열을 오름차순 정렬한다. 3. 그 배열에서 commands[i][2] 번째 수를 answer배열에 넣는다 ( 인덱스는 -1) 결과코드 package programm; import java.util.Arrays; public class solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; for (int i = 0; i < commands.length; i++) { int[] copyarr = Arrays.copyOfRange(array, commands[..

[프로그래머스] 완주하지 못한 선수 java / Array.sort(해시로 다시 풀기 체크)

Hash 문제인데 Hash로 풀지 않았음 Hash를 공부해서 다시 풀기로 !!! 이번 풀이는 Arrays.sort를 이용해서 배열을 오름차순으로 정렬을 해주고 completion과 비교해서 같지 않으면 리턴하는 것으로 completion의 길이가 participant보다 1작으니까 이렇게 가능 왜냐 .. 둘다 오름차순으로 정렬을 했기 때문에 A B C D A B C 이런식으로 정렬이 될 것이지. 그러면 인덱스가 같다는 말이 되니까 인덱스가 다르면 완주하지 못했다는 뜻이다 import java.util.Arrays; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; Ar..

[자바 java]백준1110 더하기 사이클(완전 초보자풀이) ,scanner, while문 사용

더보기 https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 문제를 풀어보았습니다. 자바 배운지 한달차.. 아직매우 부족한 코드라는 것을 감안하여 주시기 바랍니다. 문제가 이렇게 주어졌습니다. 제가 푼 방법은 접은글을 클릭해주세요 더보기 1. int x 를 스캐너로 받아야겠군 2. x가 0