목록Set (17)
어흥
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 주의할 점 - 어떤 방식으로 1~배열의 길이 만큼의 원소를 더해서 중복을 제거할지 생각한다 2. 구현 - Set을 통해 중복을 제거하고 Set에는 연속된 부분 수열의 합을 넣는다 - N
문제 링크: https://www.acmicpc.net/problem/22232 22232번: 가희와 파일 탐색기 첫 번째 줄에 jo_test 폴더에 있는 파일 개수 N과 가희가 설치한 OS에서 인식하는 파일 확장자의 개수 M이 공백으로 구분되어 주어집니다. 2번째 줄부터 N+1번째 줄까지 FILENAME.EXTENSION 형식의 문자열 www.acmicpc.net 1. 주의할 점 - 정렬 순서를 정리한다 - OS에서 인식하는 확장자인지 구분할 수 있는 방법을 생각한다 2. 구현 - List에 파일명들을 저장한다 - HashSet에 OS에서 인식하는 확장자명을 삽입한다 - List에 저장된 파일명들을 불러와서 파일명, 확장자명, OS에서 인식여부를 구하고 우선순위큐에 삽입한다 - 우선순위큐의 정렬 기준은..
문제 링크: https://www.acmicpc.net/problem/16964 16964번: DFS 스페셜 저지 첫째 줄에 정점의 수 N(2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에는 트리의 간선 정보가 주어진다. 마지막 줄에는 DFS 방문 순서가 주어진다. DFS 방문 순서는 항상 N개의 정수로 이루 www.acmicpc.net 1. 주의할 점 - 자식이 많은 부모의 경우, Leaf를 찍고 돌아왔을 때 다음 Node가 자신의 자식인지 어떻게 판별할 것인가? - 브루트포스는 절대로 하지 않는다 (하면 안되는거 알잖아요..) - TLE를 어떤 방식으로 해결할 것인가? 2. 구현 - 제목 그대로 DFS로 접근한다 - 모든 간선에 대한 정보는 Li[] 리스트 배열에 담는다 - Ar..
문제 링크: https://www.acmicpc.net/problem/2800 2800번: 괄호 제거 첫째 줄에 음이 아닌 정수로 이루어진 수식이 주어진다. 이 수식은 괄호가 올바르게 쳐져있다. 숫자, '+', '*', '-', '/', '(', ')'로만 이루어져 있다. 수식의 길이는 최대 200이고, 괄호 쌍은 적어도 1개 www.acmicpc.net 1. 주의할 점 - 출력 결과로 서로 다른 문자열을 사전순으로 출력해야 한다 2. 구현 - Stack을 통해 개구간과 폐구간을 계산하여 쌍을 이룰 경우 각각 Open, Close 벡터에 인덱스 번호를 추가한다 - DFS() 함수를 통해 최대 2^10-1의 경우를 계산하며, 일부 괄호를 제거한 문자열의 경우 Set에 추가하여 중복을 제거한다 - C++에서..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 1. 주의할 점 - 어렵다... 많이 어렵다(이전 인턴 문제에 비해 난이도가 급 상승했다) - 세그먼트 트리 or 리스트 or STL에 대한 이해도가 높은 해결 할 수 있다 2. 구현 - 세그먼트 트리 or 리스트로는 아직 풀어보지 않아서 Set을 통해 해결했다(조만간 세그먼트 트리, 리스트로도 풀어..
문제 링크: www.acmicpc.net/problem/14395 14395번: 4연산 첫째 줄에 정수 s를 t로 바꾸는 방법을 출력한다. s와 t가 같은 경우에는 0을, 바꿀 수 없는 경우에는 -1을 출력한다. 가능한 방법이 여러 가지라면, 사전 순으로 앞서는 것을 출력한다. 연산의 아 www.acmicpc.net 1. 주의할 점 - 출력에 있어 3가지의 경우가 있다 - 정답이 여러개인 경우, 사전순으로 앞선 경우를 출력한다 2. 구현 - BFS를 통해 정답을 도출한다 - 최대 범위가 10^9이므로 곱셈 혹은 덧셈의 결과가 10^9를 넘기지 않도록 한다 - 사전순으로 빠른 순서대로 BFS 탐색을 시작하며, 연산 결과의 숫자가 존재하지 않는 경우, Set과 큐에 추가한다 - 큐에서 꺼낸 원소가 Targe..
문제 링크: www.acmicpc.net/problem/4803 4803번: 트리 입력으로 주어진 그래프에 트리가 없다면 "No trees."를, 한 개라면 "There is one tree."를, T개(T > 1)라면 "A forest of T trees."를 테스트 케이스 번호와 함께 출력한다. www.acmicpc.net 1. 주의할 점 - 모든 TC가 진행되기 전, 변수를 초기화한다 - 트리가 이뤄지지 않은 Node는 무시한다 → 무조건 Tree가 없다고 하면 WA 2. 구현 - 트리의 특징인 노드 N개 → 간선 N-1개를 통해 MST를 떠올린다(MST도 똑같이 노드 N개, 간선 N-1개) - 트리가 많을 수 있기 때문에 MST의 방법중 하나인 유니온 파인드를 사용한다 - Par[] 함수를 통해 ..
문제 링크: www.acmicpc.net/problem/14867 14867번: 물통 표준 입력으로 물통 A의 용량을 나타내는 정수 a(1 ≤ a < 100,000), 물통 B의 용량을 나타내는 정수 b(a < b ≤ 100,000), 최종 상태에서 물통 A에 남겨야 하는 물의 용량을 나타내는 정수 c(0 ≤ c ≤ a), 최 www.acmicpc.net 1. 주의할 점 - A와 B의 범위가 10만개 + 짝을 이루기 때문에 Set혹은 Map을 사용한다 2. 구현 - sInfo 구조체를 통해 A와 B 물통에 남은 물의 짝을 저장한다 - Info 구조체를 통해 A, B, 수행한 명령 수를 저장하고 우선순위큐는 수행한 명령 수의 오름차순으로 정렬한다 - 현재 시점으로 3가지의 과정을 수행해보고 Set에 없다면..