본문 바로가기

코딩테스트/Programmers

(43)
[JAVA] 할인 행사 class Solution { static public int solution(String[] want, int[] number, String[] discount) { int answer = 0; for(int i=0;i ✏️ 풀이 방법 - 전체 반복 횟수를 지정한 반복문 ① ( 첫째날에 등록했을 때 , 둘째날에 등록했을 때 .. )    : 원하는 제품을 도는 반복문 ②         => 현재 원하는 제품이 "banana" 일 때        : 할인하는 제품 중 원하는 제품의 개수를 세는 반복문 ③         => 반복문을 돌며 "banana"의 개수를 구한다.         => 만약 바나나의 개수가 내가 원하는 바나나의 수량보다 작을 경우 해당 반복문 종료..
[JAVA] 옹알이(2) class Solution { public int solution(String[] babbling) { int answer = 0; for(int i=0;i ✏️ 풀이 방법 1. 반복문을 돌며 aya, ye, woo, ma 가 연속되는 경우가 있으면 다음 반복문으로 넘어가고,  연속되는 경우가 없다면 aya, ye, woo, ma 가 있는 곳을 공백으로 바꿔준다. ( ""가 아닌 " "(공백)으로 바꿔주는 이유 => 옹알이1 참고 ) 2. 공백을 제거해준 후, 해당 문자열이 빈 문자열이 된다면 ( 발음할 수 있음) 발음할 수 있는 단어의 개수를 증가시킨다.  ✍🏻 느낀점 처음에 위의 방법으로 하지 않고, 연속되는 경우를 판별하기 위해 숫자로 바꿔줬었는데 그렇..
[JAVA] 옹알이(1) import java.util.*;class Solution { public int solution(String[] babbling) { String str[]={"aya","ye","woo","ma"}; int answer = 0; for(int i=0;i ✏️ 풀이 과정 1. babbling 배열에 있는 현재 문자열이 str 배열에 있는 값들을 가지고 있는지 확인하는 반복문을 돈다.2. 만약 str 배열에 있는 값을 포함하고 있으면 공백으로 문자열을 변경한다. 3. 반복문을 돌고 난 후, 공백을 모두 ""으로 변경한다. 빈 문자열이면(str 배열에 있는 값으로 만들 수 있는 문자열이라는 뜻) answer 값을 증가시킨다. => ⚠️여기서 주의할..
[JAVA] 체육복 import java.util.*;class Solution { public int solution(int n, int[] lost, int[] reserve) { int arr[]=new int[n+1]; Arrays.fill(arr,1); //처음 배열의 값을 모두 1로 초기화 Arrays.sort(lost); Arrays.sort(reserve); for(int i=0;i1 && Math.abs(lost[i]-reserve[j])==1){ if(lost[i]==reserve[j]){ continue; } ..
[JAVA] 햄버거 만들기 class Solution { public int solution(int[] ingredient) { StringBuilder sb=new StringBuilder(); for(int i=0;i ➡️ 처음에는 StringBuilder를 사용해서 문제를 풀려고 했는데, 이렇게 하니 계속 시간 초과가 나서 문제 풀이에 실패했다.  import java.util.*;class Solution { public int solution(int[] ingredient) { int answer = 0; ArrayList list = new ArrayList(); for(int i=0;i=4 && list...
[JAVA] 모의고사 import java.util.*;class Solution { public ArrayList solution(int[] answers) { int student_1[]={1,2,3,4,5}; int student_2[]={2,1,2,3,2,4,2,5}; int student_3[]={3,3,1,1,2,2,4,4,5,5}; int score[]=new int[3]; //점수를 저장하는 배열 for(int i=0;i list=new ArrayList(); for(int i=0;i ✏️ 풀이 방법 1. 1번, 2번, 3번 학생이 찍는 방식을 각각의 배열에 저장한다. 2. answers 배열을 돌면서 ..
[JAVA] 최소 직사각형 import java.util.*;class Solution { public int solution(int[][] sizes) { int min_arr[]=new int[sizes.length]; int max_arr[]=new int[sizes.length]; for(int i=0;i ✏️ 풀이 과정 ex) sizes= [[60,50] , [30,70], [60,30], [80,40]] 일 때 각 배열에서 작은 값은 min_arr에 저장하고, 큰 값은 max_arr에 저장한다. min_arr에서 가장 큰 값과 max_arr에서 가장 큰 값을 곱한 것이 곧 가장 작은 지갑의 크기가 된다.  class Solution { public int s..
[JAVA] n^2 배열 자르기 import java.util.*;class Solution { public int[] solution(int n, long left, long right) { int arr[][]=new int[n][n]; // 2차원 배열에 값 넣기 int num=1; while(num  처음의 나는 정말 정직하게 문제에서 요구하는 그대로 2차원 배열에 값을 넣고, 이것을 1차원 배열로 바꾸고 답을 찾으려고 했다. 이렇게 하니 메모리 초과로 계속 실패를 했다. 프로그래머스 질문하기에 보니 아래와 같은 답변이 있었다. 내가 너무 문제를 무식하게 풀고 있었다는 걸 깨달았다.   import java.util.*;class Solution { p..