본문 바로가기

반응형

백준

(329)
[BOJ] 백준 1181 단어 정렬 (Swift) 문제 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 풀이 문제에 나타난 조건에 따라 정렬해주면 됩니다. 단, 중복된 단어를 제거해야 하므로 Set 자료형에 넣어준 후, 다시 Array로 만들어주는 작업이 필요합니다. 그 이후, sort 메서드의 클로저로 해당 조건을 작성해줍시다. 해당 조건은 길이가 같으면 사전순, 다르다면 짧은 것으로 정렬해주면 됩니다. sort의 클로저 구문을 { $0.count == $1.count (길이가 같..
[BOJ] 백준 11651 좌표 정렬하기 2 (Swift) 문제 https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 풀이 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 ..
[BOJ] 백준 11650 좌표 정렬하기 (Swift) 문제 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 풀이 x좌표로 오름차순, x좌표가 같다면 y좌표로 오름차순으로 정렬해주는 문제입니다. Swift에서는 고차함수 sort 메서드의 파라미터인 Bool타입을 리턴해주는 클로저로 어떤 식으로 정렬을 해줄지 정의할 수 있습니다. x좌표가 같다면? y좌표를 오름차순으로 정렬하고, 같지 않다면 x좌표를 오름차순으로 정렬하도록 작성을 해주었습니다. 소..
[BOJ] 백준 1427 소트인사이드 (Swift) 문제 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 N을 String 자료형으로 입력받아서 내림차순으로 정렬 후, 출력해주면 되는 문제입니다. String을 sorted 메서드로 정렬한다면 Character 자료형의 배열로 리턴하게되는데, 이것을 String 자료형으로 감싸주면 됩니다. 소스코드 후기 String으로 입력받으면 쉽게 풀 수 있는 문제입니다.
[BOJ] 백준 2108 통계학 (Swift) 문제 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 풀이 수를 입력받아서 산술평균, 중앙값, 최빈값, 범위를 구하는 문제입니다. 먼저 입력받은 수를 Int 배열에 넣어주겠습니다. 가장 먼저, 산술평균을 구해봅시다. 산술평균은 N개의 수들의 합을 N으로 나눈 값 이고, 소수점 이하 첫째 자리에서 반올림한 값을 출력해주어야 합니다. Int 배열에 넣어줬기 때문에 합을 N으로 나눈다면 반올림한 값을 구할 수 없을 것입니다. 고차함수 map을 사용해 Double ..
[BOJ] 백준 10989 수 정렬하기 3 (Swift) 문제 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 수가 최대 10,000,000개가 등장할 수 있습니다. 이는 $O(n)$, $O(n\log{n})$의 시간복잡도가 걸리는 정렬로는 풀이할 수 없습니다. 이 수는 10,00보다 작거나 같은 자연수라는 것에 힌트를 얻어 counting 정렬을 사용할 수 있습니다. Swift에서는 입력(readLine)과 출력(print)이 백준에서 다른 언어에 비해 많이 느립니다. 출력을 문자열에 계속해서 더해주어 한 번만 ..
[BOJ] 백준 2571 수 정렬하기 2 (Swift) 문제 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 위 문제와 동일한 문제입니다. (단순히 N의 최대값이 1,000,000)..
[BOJ] 백준 25305 커트라인 (Swift) 문제 https://www.acmicpc.net/problem/25305 25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net 풀이 k등의 점수가 커트라인 이므로, k등의 점수를 출력해주면 되는 문제입니다. 점수들을 입력받고 내림차순으로 정렬한 후, k-1번 인덱스의 요소를 출력해주면 되는 문제입니다. 소스코드 후기 정렬만 해주면 쉽게 풀 수 있는 문제입니다.

반응형