본문 바로가기

반응형

PS/백준

(318)
[BOJ] 백준 1764 듣보잡 (Swift) 문제 https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 풀이 듣보잡은 듣도 못한 사람과 보도 못한 사람 둘 다 포함되는 사람입니다. 듣도 못한 사람들을 먼저 입력받게 되는데 Set 자료형에 넣어줍니다. 그 이후 보도 못한 사람들을 입력받으면서 듣도 못한 사람에도 포함이 된다면, 듣보잡 이기 때문에 듣보잡 배열에 넣어줍시다. 듣보잡 배열의 크기를 출력하고, 듣보잡 배열을 사전순으로 정렬하여 듣보잡 명단을 출력해주면 끝 입니다. 소스코드 후기 Se..
[BOJ] 백준 10816 숫자 카드 2 (Swift) 문제 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 풀이 상근이가 가지고 있는 숫자 카드를 Dictionary 자료형으로 만들어주면 쉽게 풀이할 수 있습니다. Dictionary의 생성자 중 Dictionary(keysAndValues: Sequence, uniquingKeysWith:(_, _) throws -> _)를 사용하여 중복된 키의 value를 합쳐주는 기능을 작성할 수 있습니다. 그 이후 숫자카드..
[BOJ] 백준 1620 나는야 포켓몬 마스터 이다솜 (Swift) 문제 https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 풀이 문제가 엄청 기네요... 먼저 문제를 살펴보면 n번의 포켓몬의 이름을 입력받고, m번의 명령을 통해 명령이 숫자이면 포켓몬이름, 문자열이면 포켓몬의 번호를 출력해주는 문제입니다. 어떻게 포켓몬의 이름과 번호를 매칭시킬 수 있을까요? Swift에서는 HashMap이라고도 불리는 Dictionary 자료형을 사용할 수 있습니다. 간단하게 설명하면 key와 val..
[BOJ] 백준 11425 문자열 집합 (Swift) 문제 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 풀이 문제에서 집합이 주어진다고 나와있습니다. 빈 Set 자료형을 만들어주고, n개의 문자열을 입력을 받아 Set 자료형에 넣어줍시다. m개의 문자열을 입력을 받으면서 Set 자료형에 문자열이 있다면, 출력할 변수에 1을 더해주고 마지막에 출력해주면.. 끝..! 입니다 소스코드 후기 Set 자료형을 사용하는 아주 기본적인 예제 문제인 것 같습니다. Set 자료..
[BOJ] 백준 10815 숫자카드 (Swift) 문제 https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 풀이 각 수가 적힌 숫자 카드를 상근이가 가지고 있다는 것은 contains 메서드를 사용해서 확인할 수 있습니다. Array의 contains는 $O(n)$이지만 Set 자료형의 contains는 $O(1)$ 만큼 소요됩니다. 따라서 상근이가 가지고 있는 숫자 카드를 Set 자료형으로 만들어 준 후, 각 수가 적힌 숫자 카드들을 하나씩 상근이가 가지고 있는지 ..
[BOJ] 백준 1436 영화감독 숌 (Swift) 문제 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net 풀이 맨처음에는 DP를 떠올렸다가.. 점화식을 구하는데 애를 먹어서 일단 완전탐색으로 접근하였습니다. 666부터 1씩 증가시켜서 6이 연달아서 3번 등장한다면, 배열에 넣어주고 입력받은 n - 1번째 요소를 출력해주었습니다. 그런데... 여기서 저는 String의 contains 메서드를 사용하여 "(number)".contains("666") 과 같이 사용하였는데 Int -> String..
[BOJ] 백준 1018 체스판 다시 칠하기 (Swift) 문제 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 풀이 먼저, 보드를 8x8 사이즈로 잘라서 체스판을 만들 수 있는 경우를 다 따져봐야합니다. 예를 들어 9x9 사이즈라면, 총 4개의 체스판이 나올 수 있습니다. 자른 후에는 8x8 사이즈의 체스판을 맨 왼쪽 윗칸이 흰색인 체스판, 검은색인 체스판과 다르게 칠해져있는 경우의 수를 찾으면 됩니다. 맨 왼쪽 윗칸이 흰색인 체스판을 보면, 행과 열의 합이 짝수인 경우는 흰색으로, 홀수인 경..
[BOJ] 백준 7568 덩치 (Swift) 문제 https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 풀이 이 문제에서는 덩치는 키와 몸무게가 둘 다 크다면 덩치가 더 큰 것으로 판단합니다. 자기 자신보다 덩치가 큰 사람의 수 + 1이 자신의 덩치 등수가 되므로, 자기 자신과 모든 사람과의 덩치를 비교를 해서 풀이할 수 있습니다. 즉, 완전탐색으로 풀이할 수 있습니다. $O(n^2)$의 시간복잡도가 소요될 것이고 n이 최대 50이므로 완전탐색으로 풀이시, 충분한 시간내에 가능합니..

반응형