728x90
반응형
SMALL

코딩테스트 8

[프로그래머스] 개인정보 수집 유효기간 Lv1

문제 설명 고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. 예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월 4일까지 보관 가능하며 2022년 1월 5일부터 파기해야 할 개인정보입니다. 당신은 오늘 날짜로 파기해야 할 개인정보 번호들을 구하려 합니다. 모든 달은 28일까지 있다고 가정합니다. 다음은 오늘 날짜가 2022.05.19일 ..

코딩 테스트 2024.03.06

[프로그래머스] 완주하지 못한 선수 Lv1

문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 풀이 먼저 문제를 처음 봤을 때 for 문을 돌려서 수행해야겠다 생각을 했고, 최소한 ..

코딩 테스트 2024.03.05

프로그래머스) 올바른 괄호 Lv2

이번에도 래벨 2 도전! 문자열 s 에 랜덤의 (, ) 괄호가 주어지고 괄호를 바르게 짝지었을 때 true, 아닐 경우 false 를 리턴하는 문제이다. 처음 문제를 풀 때 () 코드가 있을 경우 "" 으로 변경을 하는 코드를 작성했다! 돌려보니 문제는 모두 맞는데 효율성의 문제가 발생했다... class Solution { boolean solution(String s) { boolean answer = true; int cur = 0; while(s.length() >= 0){ int fur = s.length(); s = s.replaceAll("\\(\\)",""); if(s.length() == 0){ break; } if(cur == fur){ break; } cur = fur; } retur..

코딩 테스트 2024.02.08

프로그래머스) 예산 Lv1

각각 부서마다 필요한 물품을 예산 안에서 최대한 많이 뿌리는 코딩문제! 부서별로 신청한 금액을 배열로 정렬한 뒤 예산보다 초과 시 break 만 걸어주면 해결되는 문제! 쉽게 푼 문제라 뭔가 기분이 좋았다 ㅎㅎ 정답 import java.util.*; class Solution { public int solution(int[] d, int budget) { int answer = 0; int cur = 0; Arrays.sort(d); // cur : 모두 더한 값 // answer : 모두 더한 횟수 for(int i=0; i budget) break; else answer++; } return answer; } } 출처 프로그래머스 - https://school.programmers.co.kr/lea..

코딩 테스트 2024.02.07

프로그래머스) 약수의 개수와 덧셈 Lv1

요즘 코테 자신감이 떨어져서 자신감회복용으로 쉬운 문제들을 풀어나가고 있다(효과가 있을지도?!) 약수의 개수에 따라 해당 숫자를 더할지 뺄지를 결정하는 문제인데 나는 약수의 갯수를 구하는 메서드를 새로 하나 추가해서 boolean 값을 받아올 수 있게끔 만들었다! 정답 class Solution { public int solution(int left, int right) { int answer = 0; for(int i=left; i

코딩 테스트 2024.02.06

프로그래머스) 두 개 뽑아서 더하기 Lv1

손풀기 문제로 쉬워보이는 문제를 뽑아서 풀었는데 ArrayList 중복 제거 방법을 만들어보려고 하다가 살짝 헤맸다... 이 문제는 각각 순서대로 ① 더한 값들을 모두 ArrayList에 저장 ② ArrayList 중복 제거 ③ ArrayList 값 배열에 넣기 ④ 배열 정렬 위 방식대로 문제를 해결했다 되게 정석적이고 쉬운 방식이긴한데 소스가 길어져서 다른 훌륭한 답변이 있나 다른 분들 답을 구경했는데 세상에.... 리턴 타입을 바꿔도 정답으로 처리가 된다 흠.... 그렇다면 내꺼 소스도 굳이 ArrayList를 배열로 변환하지 않아도 됬었겠다 생각이 들었다 ㅎㅎ 코테 문제는 문제를 풀고 다른 사람들은 어떻게 문제를 풀었는지 구경하는게 재밌는거같다! 정답 import java.util.*; import..

코딩 테스트 2024.02.06

프로그래머스) K번째 수 Lv1

배열 안 특정 범위 내에서 정렬은 한 뒤 k 번째 수를 구하는 문제! 배열의 범위를 자르는 방법에 대해서 이것저것 쑤시고, commands 랑 같이 사용하려고 하다보니 for문이 4개나 중첩되어가고 있었다... 이건 나도 보기 어렵고 아무리 잘쳐줘도 정답은 아닌 것 같아 고민을 좀 하다 힌트(질문하기)를 사용했다 참고한 내용 중 commands에 나오는 시작번호, 끝번호, 선택 번호를 변수로 두고 배열과 함께 처리하는 메서드를 만들어서 처리하는 방법을 확인하고 문제를 해결하였다! 그리고 다른 사람들은 어떻게 풀었나 확인을 해보니 배열을 정렬하는 함수 Arrays.copyOfRange 를 사용하여 문제를 풀었드라.... Arrays.copyOfRange(array, commands[i][0]-1, comm..

코딩 테스트 2024.02.05

Java에서 length, length(), size()의 차이점!

코딩 테스트 문제를 풀다가 헷갈릴 부분이 있을 것 같아 작성합니다! 종류 배열 문자열 컬렉션 반환값 int int int 사용법 배열.length 문자열.length() 컬렉션.size() length: 배열의 길이를 반환합니다. 배열은 고정 크기이므로 길이를 변경할 수 없습니다. length(): 문자열의 길이를 반환합니다. 문자열은 가변적이므로 길이를 변경할 수 있습니다. size(): 컬렉션의 요소 개수를 반환합니다. 컬렉션은 요소를 추가하거나 제거할 수 있으므로 크기가 동적으로 변경될 수 있습니다. length : 배열 length는 배열의 길이를 나타내는 속성입니다. 배열을 생성할 때 크기를 지정하고, 이 크기는 배열의 길이가 됩니다. 예: int[] array = new int[5];에서 ar..

코딩 테스트 2024.02.02
728x90
반응형
LIST