코딩 테스트/Java 문제 풀이

1. 문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr2. 풀이 과정이 문제를 가장 쉽게 푸는 방법은 하나하나 대조해가며 푸는 것이다. 모든 i에 대해 participant[i]와 같은 completion이 있는지를 찾고 그 completion을 지운다.이렇게 되면 최종적으로는 participant에는 한명이 남게 되는데 이 사람이 답이 된다.이 경우 시간복잡도는 O(N^2)이 나올 것이다.그러나 이 문제의 입력 최대 크기가 10만이다. 즉, O(N^2)로는 풀 수 없다. 따라서 각 participant에 대해 completion을 조회하는 과정의 시간복잡..
1. 문제  2. 풀이 과정이 문제를 딱보자마자 들었던 생각은 이중 for문 이었다.이중 for문을 통해 두 개의 수를 뽑아서 합을 구한 다음, 그 합이 target과 일치하는지를 확인하면 된다.그렇게 되면 시간복잡도가 O(N^2)이 된다. 하지만 애석하게도 이 문제의 입력최대 크기는 10000이다. O(N^2)으로는 풀 수가 없다. 따라서 생각의 방향을 바꿨다. arr[i]와 그 외 다른 배열의 원소 arr[k]를 더했을 때 target이 되게 하는 arr[k]가 배열에 있는지를 체크한다. 이때 arr[k]가 배열에 있는지 체크하는 과정이 핵심인데 그냥 배열로 조회한다면 O(N)이 소요되겠지만 해시를 이용한다면 O(1)로 해결이 가능하다. 3. 내 코드public static boolean soluti..
1. 문제2. 풀이 과정카드 뭉치는 무조건 순서대로 사용해야 하며 카드를 사용하지 않으면 다음 카드로 넘어갈 수 없다.무조건 제일 앞에 카드를 사용해야 다음 카드도 사용할 수 있다는 말이다.나는 이러한 특징을 보고 큐를 떠올렸다. 이 문제의 로직은 다음과 같다.cards1, cards2를 두 개의 큐에  순서대로 넣는다goal에서 문자열을 하나씩 꺼내서 cards1과 cards2 큐의 첫 번째 값과 비교한다.goal의 문자열과 같은 문자열이 있다면 해당 큐에서 그 문자열을 꺼내준다.만약 같은 문자열이 없다면 답은 No로 종결된다.반면 모든 goal의 문자열에 대해서 같은 문자열이 존재한다면 답은 Yes가 된다.3. 내 코드import java.util.*;class Solution { public ..
1. 문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr2. 풀이 과정진행상태와 진행속도를 알기 때문에 완료하는데 걸리는 시간을 알 수가 있다.위의 예시 중 progresses = [95, 90, 99, 99, 80, 99], speeds = [1, 1, 1, 1, 1, 1] 인 경우 각 기능이 완료하는데 걸리는 시간은 [5, 10, 1, 1, 20, 1]이다. 5일이 되는 순간 1번 기능은 바로 배포된다. --> 110일이 되는 순간 2번, 3번 4번 기능이 동시에 배포된다. 3번, 4번 기능의 경우 2번 기능 때문에 기다려야 한다.  --> 320일이 되..
jaehee1113
'코딩 테스트/Java 문제 풀이' 카테고리의 글 목록 (9 Page)