코딩 테스트

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..
해시(Hash)란?해시(Hash)란 특정 key를 인덱스로 삼아 value 값을 저장하는 자료구조이다.이 key 값은 해시함수를 통해 해시값으로 변환되어 value값의 인덱스가 된다.  리스트와 같은 자료구조에선 단순히 숫자가 value의 인덱스가 되겠지만 해시에는 숫자 뿐만 아니라 모든 객체를 인덱스처럼 사용할 수 있다. 이러한 자료구조는 실생활에서도 쉽게 볼 수 있는데 대표적인 예가 전화번호부이다.key가 이름이고 value가 전화번호이다.이름을 해시함수에 넣어서 이를 통해 해시 값을 반환해 전화번호에 매핑한다.해시를 통해 빠르게 특정 데이터를 빠르게 접근할 수 있다.key값만 있으면 value값을 바로 찾아낼 수 있으므로 시간 복잡도가 O(1)이 된다.  해시 값과 value를 매칭시켜놓은 공간을 ..
1. 문제2. 풀이 과정카드 뭉치는 무조건 순서대로 사용해야 하며 카드를 사용하지 않으면 다음 카드로 넘어갈 수 없다.무조건 제일 앞에 카드를 사용해야 다음 카드도 사용할 수 있다는 말이다.나는 이러한 특징을 보고 큐를 떠올렸다. 이 문제의 로직은 다음과 같다.cards1, cards2를 두 개의 큐에  순서대로 넣는다goal에서 문자열을 하나씩 꺼내서 cards1과 cards2 큐의 첫 번째 값과 비교한다.goal의 문자열과 같은 문자열이 있다면 해당 큐에서 그 문자열을 꺼내준다.만약 같은 문자열이 없다면 답은 No로 종결된다.반면 모든 goal의 문자열에 대해서 같은 문자열이 존재한다면 답은 Yes가 된다.3. 내 코드import java.util.*;class Solution { public ..
jaehee1113
'코딩 테스트' 카테고리의 글 목록 (13 Page)