본문 바로가기

Programmers(Algorithm)

(19)
코딩테스트 고득점 Kit(스택/큐)_다리를 지나는 트럭_Level2 https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 개인적으로 문제를 이해하기 쉽지 않은 문제였다. 트럭이 다리를 지나는데 걸리는 시간이 1길이(bridge_length)당 1초라는 것을 파악하는데 오랜 시간이 걸렸다. 이해력이 부족한 건지 참... 결국 해당 문제도 다른 블로그의 힘을 얻어 풀게 되었다. 당장 코테가 얼마 남지 않아 한 문제만 주구장창 계속 볼 수가 없었다.... [문제 풀이] 1. 주어진 대기 순서대로 다리를 건너게 하기 위해서..
코딩테스트 고득점 Kit(스택/큐)_프린터_Level2 https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 해당 문제는 우선순위큐와 기본 큐를 이용하여 푸는 문제이다. 해당 개념을 잘 알지 못한다면 접근하기 어려울 수 있는 문제라고 생각한다. 1. 큐에는 값의 초기 위치(인덱스), 중요도를 넣어주고 우선순위 큐에는 중요도를 넣어준다. => 우선순위 큐는 내림차순으로 정렬되어 첫번째 값에 가장 큰 값이 오도록 한다. 2. 큐의 값이 빌 때까지 하나씩 꺼내주면서 확인한다. 꺼낸 큐의 값의 중..
코딩테스트 고득점 Kit(스택/큐)_올바른 괄호_Level2 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 여는 괄호와 닫는 괄호의 짝을 맞춰주는 스택 문제이다. 여는 괄호가 나오는 경우 스택에 넣어주고 닫는 괄호가 나오는 경우 스택이 비어있는지 (앞서 짝이 맞는 여는 괄호가 나오지 않는 경우) 확인해주고 스택에서 짝이 맞는 여는 괄호를 꺼내준다. 만약 닫는 괄호를 만났을 때 스택이 비어있는 경우 짝이 맞지 않는 경우이기 때문에 false를 리턴해준다. 모든 괄호를 확인하고 스택에 값이 ..
코딩테스트 고득점 Kit(스택/큐)_기능개발_Level2 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 상당히 쉬운 난이도의 문제인 것 같았다. 앞선 해쉬의 level2 문제가 너무 어려워서 더욱 그렇게 느끼는 듯 하다. 1. 작업의 진도와 속도*일자를 더해 작업이 완료(작업진도 100이상)된 일자를 큐에 저장한다. 2. 큐에 저장된 일자를 하나씩 꺼내 확인한다. 큐에서 처음으로 꺼낸 값을 기준으로 뒤에 이후의 큐값이 더 작은 경우 동시 배포가 가능하기 때문에 배포 개수를 증가시켜준다..
코딩테스트 고득점 Kit(스택/큐)_같은 숫자는 싫어_Level1 https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 스택에 배열의 원소값을 넣고 이전에 나오지 않은 값(스택에 있는 값)이면 스택을 비워주고 새로 스택에 넣어준다. 스택의 top 부분과 비교하면 정답 배열을 채워나간다. [소스 코드] #include #include #include using namespace std; vector solution(vector arr) { vector answer; stack s; s.push(arr[..
코딩테스트 고득점 Kit(해시)_위장_Level2 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 경우의 수 조차 어떻게 구해야할지 감이 잡히질 않아 결국 구글링을 통해 풀게 되었다. 경우의 수를 구하는 방법은 다음과 같다. 의상의 종류별 개수를 구한다. 예를들어, 얼굴 종류 의상 개수 , 상의 종류 의상 개수, 하의 종류 의상 개수, 겉옷 종류 의상 개수 각 종류의 개수를 곱해주면 되는데 여기서 유의 사항은 각 카테고리 별로 의상을 입지 않은 경우의 수도 생각해야한다. 다시 말..
코딩테스트 고득점 Kit(해시)_전화번호 목록_Level2 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 먼저 문자열 정렬을 실행한다. 문자열 정렬을 실행하는 경우 문자 순서대로 배열에 저장된다. ex) 정렬 이전 phone_book = ["12","123","89235","567","334"] 정렬 이후 phone_book = ["12","123","334","567","89235"] 정렬이 완료되면 현재 확인하는 문자열과 다음에 있는 문자열만 확인하면 된다. 만약 0번째 위치에 있는..
코딩테스트 고득점 Kit(해시)_폰켓몬_Level1 https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 중복된 수는 제외, 새로운 수를 만날때 마다 1을 증가시킨다. 단, nums의 사이즈/2 보다 같거나 큰 경우 종료한다 [소스 코드] #include #include using namespace std; int solution(vector nums) { int answer = 0; int cnt = 1; int end = nums.size()/2; sort(nums.begin(), n..