목록알고리즘 (53)
자바칩
난이도: Level 3문제: https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr DP는 자신이 없는 유형인데 이 문제는 특히나도 어려웠다.다른 사람의 풀이를 봤는데도 이해하는 시간이 한참이나 걸렸다.어떻게 그런 기가막힌 생각을 하는 것인지 참 신기하다.DFS, BFS, 백트래킹처럼 알고리즘을 잘 적용시키면 풀 수 있는 문제와는 달리, 그리디나 DP는 처음부터 끝까지 본인이 이끌어낸 사고력을 요구하니까 참 어려운 것 같다. 이 문제는 숫자들을 어떻게 조..
난이도: Level 3문제: https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이분탐색 알고리즘은 알지만 최솟값을 어떻게 이분탐색으로 구해야 할지 감이 잘 잡히지 않았다.그래서 다른 사람의 풀이를 봤는데, 내가 예전에 백준에서 푼 문제와 유사했다.풀었던 유형이어도 자주 접하지 않으니까 까먹게 되었다. 제한사항입국심사를 기다리는 사람은 1명 이상 1,000,000,000명 이하입니다.각 심사관이 한 명을 심사하는데 걸리는 시간은 1분 이상 1,000,..
난이도: Level 2문제: https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 그리디는 정말 어렵다......그리디는 사고력 싸움이 아닐까?정답 코드는 매우 짧지만 완전히 이해하는데 시간이 꽤 걸렸다. 우선 변수를 다음과 같이 선언한다.move의 초기값은 오른쪽으로 쭉 순차적으로 탐색할 때의 이동 횟수이다. int answer = 0; // 조이스틱 총 이동 횟수의 최솟값 int length = name.length(); ..
난이도: Level 2문제: https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr A, E, I, O, U를 저장할 char 타입의 배열과 2차원 visited 배열을 사용하여 백트래킹으로 풀면 생각보다 쉽게 풀린다.백트래킹이라는 문제를 알면서도 A E I O U를 배열로 저장할 생각을 못하고 Map으로 visited 여부 체크를 하려고 해서 시간이 생각보다 꽤 걸렸다. 우선 전역에서 사용할 변수로 다음과 같이 선언한다.위에서 말했듯이 모음('A', '..
난이도: Level 2문제: https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 우선 전역에서 사용할 변수로 트리(리스트 배열)를 선언한다. class Solution { ListInteger>[] tree; // 트리 리스트 배열 solution 메서드 안에 변수를 다음과 같이 선언한다.최솟값을 구해야 하므로 answer 변수의 초깃값은 최댓값으로 설정한다.n번 송전탑도 인덱스에 포함되어야 하므로 tree 배열의 크기를 n ..
난이도: Level 2문제: https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr dungeons의 세로(행) 길이(즉, 던전의 개수)는 1 이상 8 이하입니다.만약, 첫 번째 → 두 번째 → 세 번째 던전 순서로 탐험한다면 .... (생략)만약, 첫 번째 → 세 번째 → 두 번째 던전 순서로 탐험한다면 .... (생략)=> 데이터의 수 N이 8밖에 안되고, 모든 순서를 탐색해야 하므로 백트래킹으로 풀면 된다. 우선 Solution 클래스의 인스턴스 변..
난이도: Level 2문제: https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 작업의 개수(progresses, speeds배열의 길이)는 100개 이하이다.즉 데이터의 개수 N이 100밖에 안 되어서 시간 복잡도의 영향을 받지 않으므로 O(N^2)으로도 풀 수 있는 문제이다. 우선 큐와 리스트를 다음과 같이 선언한다.counts는 배열의 임시 리스트이다. 배열은 크기를 조정시키기 어려우므로 우선 리스트로 선언하고 리턴할 때 배열로 바꿀 것이다. ..
난이도: Level 2문제: https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제가 스택/큐 알고리즘이라는 것을 몰랐다면 나는 문자열로만 돌리다가 시간을 꽤 많이 잡아먹었을 것이다.하지만 스택/큐 문제라는 것을 알려주니까 내 생각보다 꽤 빨리 풀었다.어떤 알고리즘으로 접근해야 하는지 파악하는 것이 참 중요한 것 같다. 우선 큐와 스택을 선언한다. QueueCharacter> queue = new LinkedList(); // 문자열..