목록Set (17)
어흥
문제 링크: programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 1. 주의할 점 - 불량사용자와 매칭된 사용자는 탐색할 수 없어야 한다 - 예제 2번과 같이 순서가 같지만 사용자는 같으므로 순열이 아닌 조합이다 2. 구현 - 불량사용자와 매칭된 사용자들이 오름차순으로 정렬하여 Set에 저장하여 조합의 수를 구하도록 한다 - DFS(idx)를 통하여 idx번째 불량사용자와 매칭되는 i번째 사용자를 구한다 - 사용자와 매칭되려면,..
문제 링크: www.hackerrank.com/challenges/two-strings/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=dictionaries-hashmaps Two Strings | HackerRank Given two strings, you find a common substring of non-zero length. www.hackerrank.com 1. 주의할 점 - 문제를 잘 읽자 - KMP 알고리즘을 사용하지 않아도 된다 2. 구현 - 3가지 방법으로 접근했지만 성공한것은 1개 뿐 (1) Set, 시간복잡도: O(N^2*M^2) -> TLE(4/8 성공) - s1의 ..
문제 링크: www.acmicpc.net/problem/14466 14466번: 소가 길을 건너간 이유 6 첫 줄에 N, K, R이 주어진다. 다음 R줄에는 한 줄에 하나씩 길이 주어진다. 길은 상하좌우로 인접한 두 목초지를 잇고, r c r′ c′의 형태 (행, 열, 행, 열)로 주어진다. 각 수는 1 이상 N 이하이다. www.acmicpc.net 1. 주의할 점 - Dist[][] 배열을 항상 초기화한다 - 다익스트라 알고리즘을 통해 구하며, 길을 건너야 하는 경우를 1, 아닌 경우 0으로 놓고 푼다 2. 구현 - 입력받은 도로에 대한 정보를 Road[][][][]에 True 값으로 전환한다 - 소의 위치를 Cow 벡터에 저장한다 - 모든 소에 대해 우선순위 큐를 이용한 다익스트라 함수를 수행하여,..
[Dictionary] 1. 정의 - Key와 Value를 저장해서 가지고 있다(Map이나 HashMap이랑 같다고 보면 될것 같다) - 순서에 상관 X 2. 기본 기능 + 예제 //선언 방법 var scoreDic: [String, Int] = ["Jakob": 85, "John": 100, "Jasmine": 90] var scoreDic2: Dictionary = ["Jakob": 85, "John": 100, "Jasmine": 90] scoreDic["Jakob"]//85 scoreDic["Yasmine"]//nil if let score = scoreDic["John"]{//optional binding print(score) } else{ print("해당 학생이 존재하지 않습니다") } /..
문제 링크: https://www.acmicpc.net/problem/6416 6416번: 트리인가? 문제 트리는 굉장히 잘 알려진 자료 구조이다. 트리를 만족하는 자료 구조는 비어 있거나(노드의 개수가 0개), 노드의 개수가 1개 이상이고 방향 간선이 존재하며 다음과 같은 조건을 만족해야 �� www.acmicpc.net 1. 주의할 점 - 매 TC마다 Case를 1씩 증가시킨다 - 매 TC마다 벡터와 배열들을 초기화한다 - Root가 2개 이상 있는지, 없는지, 부모가 2개 이상인지, Root에서 모든 Node까지 도달 가능하지 전부 확인한다 - 0 0 또한 빈 트리로, 트리라고 출력해야 한다 2. 구현 - 입력받는 모든 Node들을 Set에 넣으며, 간선의 정보는 V[부모]에 자식에 대한 정보를 넣..
문제 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRUN9KfZ8DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 주의할 점 - 회전의 수가 최대 3번이 아니다 - 회전시, 맨 뒤의 숫자가 맨 앞에 추가되는것 - 숫자가 커질 수 있으므로 Long으로 지정한다 2. 구현 - String으로 받은 후, Treeset에 대입하여 중복제거 + 오름차순 정렬로 되도록 설정한다 - Rot() 함수가 회전을 담당한다 - Treeset은 오름차순으로 정렬되어 있으므로, Set.size()-k의 위치에 있는 ..
문제 링크: https://www.acmicpc.net/problem/14225 14225번: 부분수열의 합 수열 S가 주어졌을 때, 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오. 예를 들어, S = [5, 1, 2]인 경우에 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)을 만들 수 있다. 하지만, 4는 만들 수 없기 때문에 정답은 4이다. www.acmicpc.net 1. 주의할 점 - 부분수열의 합으로 만들어 지는 수에 대해 중복 처리가 필요하다(따로 값을 저장할 시) 2. 구현 - Set을 이용해 부분수열의 합을 저장한다 - Cal() 함수의 경우 부분수열로 만들 수 있는 모든 수를 Set에 저장한다 - Set의 N..
문제 링크: https://www.acmicpc.net/problem/15653 15653번: 구슬 탈출 4 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' 로 이루어져 있다. '.'은 빈 칸을 의미하고, '#'은 공이 이동할 수 없는 장애물 또는 벽을 의미하며, 'O'는 구멍의 위치를 의미한다. 'R'은 빨간 구슬의 위치, 'B'는 파란 구슬의 위치이다. 입력되는 모든 보드 www.acmicpc.net 1. 주의할 점 - 기존의 구슬 탈출 문제들과 푸는 방식은 같다. 다만, 최대횟수가 10번을 넘어갈 수 있다. - ..