목록Argorithm (78)
빙응의 공부 블로그

📝풀이 자바 String의 replaseAll을 사용하면 쉽게 풀 수 있다. 여기서 조건이 붙는데 1. 반복 2번은 말하지 못한다. (2번 반복 처리) 이것만 유의해주면 쉬운 문제이다. class Solution { public int solution(String[] babbling) { int answer = 0; for (String str : babbling) { str = str.replaceAll("ayaaya|yeye|woowoo|mama", "X"); //2번 반복 처리 str = str.replaceAll("aya|ye|woo|ma", ""); if (str.equals("")) answer++; } return answer; } }

📝풀이 1. 배열에서 1231검색하기 2. 만약 발견하면 반복문을 다시 적용해줘야함. 고민한 것은 1231을 어떻게 검색하느냐? 였다. 자바는 Python처럼 replese가 있는게 아니라서 하나하나 검사하기로 했다. import java.util.ArrayList; class Solution { public int solution(int[] ingredient) { StringBuilder sb = new StringBuilder(); int answer = 0; for (Integer num : ingredient) sb.append(num); for (int i = 0; i < sb.length() - 3; ) { if (sb.charAt(i) == '1' && sb.charAt(i + 1) == ..

📝풀이 기본적인 문자열 처리 문제 설명할게 없는데 제일 관건은 문자열 처리와 얼마나 쉽게 문자를 뒤집어서 합치는 가? 이다. 첫 구현 방법, 별 생각 안하고 기능을 구현했다. class Solution { public String solution(int[] food) { String answer = ""; for(int i = 1; i = 0; i--){ answer += Character.toString(temp.charAt..

📝풀이 사과의 최대 점수 k 한 상자에 들어가는 사과의 수 m 사과들의 점수 score 1. 사과 배열에서 큰것부터 선택해서 점수 얻기 2. 배열 계산을 통한 구현 내가 이해한 방법은 이것이다. 배열을 큰 수부터 정렬한 후 -> M개를 담는다 -> 해당 상자의 값은 가장 싼 사과에 m을 곱하는 것이다. 그냥 정렬 후에 m번째 값을 계산하면 되지 않을까? import java.util.Arrays; import java.util.Collections; class Solution { public int solution(int k, int m, int[] score) { int answer = 0; Integer[] arr = new Integer[score.length]; for(int i = 0; i < ..

📝풀이 처음 풀 때 해당 문제에 대한 염두는 2가지 였다. 1. number의 약수를 구한다. 2. 갯수를 limit와 비교 후 저장 class Solution { public int solution(int number, int limit, int power) { int answer = 0; for(int i = 1; i

📝풀이 컬렉션을 이용한 처리가 중요한 방식이다. 나는 ArrayList를 이용해 구현했지만 PriorityQueue를 이용하면 쉽게 구현 가능하다. 1. k개의 용량을 다 채워줄 로직이 필요하다. 2. 값을 비교하기 위한 sort기능이 필요하다. 3. 맨 앞에 있는 값을 가져오기 위한 방법이 필요하다 내가 한 코드는 모든 경우의 수에 sort를 하며 remove때 많은 연산이 필요하다. import java.util.*; class Solution { public int[] solution(int k, int[] score) { ArrayList honor = new ArrayList(); int[] answer = new int[score.length]; for (int i = 0; i < score...