본문 바로가기

반응형

분류 전체보기

(400)
[BOJ] 백준 25206 너의 평점은 (Swift) 문제 https://www.acmicpc.net/problem/25206 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net 풀이 등급과 과목 평점을 어떻게 매치시켜줄 수 있을까요? Swift에서는 Dictionary나 enum을 사용할 수 있습니다. Dictionary를 [String: Double] 과 같은 자료형으로 나타내어 [A+: 4.5, A0: 4.0, ... F: 0] 과 같이 나타내어 매칭시킬 수 있습니다. enum을 사용하면 case ap = 4.5, a = 4.0 ... f = 0 과 같이 enum의 ..
[BOJ] 백준 10988 팰린드롬인지 확인하기 (Swift) 문제 https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 풀이 팰린드롬은 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어 입니다. (우영우가 생각나네요...) reversed() 메서드를 사용하면 문자열을 뒤집을 수 있습니다. 기존 문자열과 뒤집은 문자열을 비교해서 같으면 1, 아니면 0 을 출력해주면 되는 문제입니다. 소스코드 후기 reversed() 메서드를 알면 쉽게 풀 수 있는 문제입니다. reversed()의 반환형이 ReversedCollection 이기 때문에, String으로 한 번 감싸주..
[BOJ] 백준 10812 바구니 순서 바꾸기 (Swift) 문제 https://www.acmicpc.net/problem/10812 10812번: 바구니 순서 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 풀이 먼저 1부터 n까지 적힌 바구니를 배열로 만들어 줍시다. 그 이후 i, j, k를 m번 입력을 받아서 순서를 회전해주어야 합니다. i, i + 1 ... k, k + 1... j - 1, j 와 같은 순서로 되어있는 바구니를 k, k + 1 ... j - 1, j ... i, i + 1... k - 1 과 같은 순서로 바꾸어주어야 합니다. 어떻게 순서를 바꿀 수 있을까요? ..
[BOJ] 백준 2444 별 찍기 - 7 (Swift) 문제 https://www.acmicpc.net/problem/2444 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 풀이 for문과 String(repeating:count:) 메서드를 사용하면 쉽게 풀 수 있는 문제입니다. 예제 입력이 5일 때, 위로 향하는 피라미드 모양을 먼저 확인해봅시다. 빈칸 4개, 별 1개 빈칸 3개, 별 3개 빈칸 2개, 별 5개 빈칸 1개, 별 7개 빈칸 0개, 별 9개 와 같이 출력해주고 있습니다. n이 5이기 때문에, 빈칸은 4에서 0으로 줄어드니깐, 1부터 n까지 for문을 돌면서 빈칸의 개수를 n - i 개를 출력해주면 됩니다. 별은 1, 3, 5, 7, 9 형태로 찍히게 됩니다. 1부터 n까지 ..
[BOJ] 백준 11718 그대로 출력하기 (Swift) 문제 https://www.acmicpc.net/problem/11718 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시 www.acmicpc.net 풀이 while let 문법을 사용하여, 입력받은 readLine()이 올바르지 않을 때 까지 입력을 받아주고, 입력을 그대로 출력하면 되는 문제입니다. 소스코드 후기 Swift에서는 EOF를 받을 때 까지 입력을 받을 때, while let i = readLine()과 같은 형식으로 입력을 받으면 됩니다. 이것을 몰랐다면 풀기 힘든 문제인 것 같습니다.
[BOJ] 백준 9086 문자열 (Swift) 문제 https://www.acmicpc.net/problem/9086 9086번: 문자열 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 하나의 문자열이 주어진다. 문자열은 알파벳 A~Z 대문자로 이루어지며 알파벳 사이에 공백은 없으 www.acmicpc.net 풀이 문자열의 첫 글자를 뽑아내는 first, 마지막 글자를 뽑아내는 last를 사용해서 쉽게 풀이할 수 있습니다. 반환 자료형이 Character이기 때문에, String으로 변환하거나, 문자열 보간법을 사용하여 출력해주면 됩니다. 소스코드 후기 first, last에 대해 알고있다면 쉽게 풀 수 있는 문제입니다.
[BOJ] 백준 10811 바구니 뒤집기 (Swift) 문제 https://www.acmicpc.net/problem/10811 10811번: 바구니 뒤집기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 풀이 [Int](0...n)으로 바구니들을 초기화 해줍시다. 뒤집는 것을 어떻게 할 수 있을까요? revered() 메서드를 사용하여 뒤집을 수 있습니다. reversed는 어떻게 활용할 수 있을까요? Array의 replaceSubrange 메서드를 사용하여, 풀이할 수 있습니다. 단순히 Array에서 뒤집을 범위를 뒤집어서 넣어주면 되겠죠? 예를 들어 [1, 2, 3, 4, 5] ..
[BOJ] 백준 10813 공 바꾸기 (Swift) 문제 https://www.acmicpc.net/problem/10813 10813번: 공 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 www.acmicpc.net 풀이 https://dev-mandos.tistory.com/106 [BOJ] 백준 10810 공 넣기 (Swift) 문제 https://www.acmicpc.net/problem/10810 10810번: 공 넣기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매 dev-mandos.tistory...

반응형