본문 바로가기

반응형

PS/백준

(318)
[BOJ] 백준 10798 세로읽기 (Swift) 문제 https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 풀이 n * n 형태의 2차원 배열이라면 세로로 읽는 것은 아주 간단할 것입니다. 하지만 이번 문제의 경우 글자의 개수가 다르기 때문에, 세로로 읽다보면 없는 index에 접근하게 되기 때문에 런타임 에러가 발생할 것입니다. 이것을 어떻게 해결할 수 있을까요? 글자의 개수는 최소 1 ~ 최대 15개 입니다. [5][15] 크기의 2차원 배열을 먼저 만들어주고, 값은 빈 문자열로 초기화..
[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] ..

반응형