본문 바로가기

반응형

PS

(334)
[BOJ] 백준 2751 수 정렬하기 2 (Swift) 문제 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이 Swift 내장함수인 sorted, sort 메서드를 통해 풀 수 있는 문제 Swift에서 출력 함수인 print가 String의 + 연산 보다 느리기 때문에 print 함수를 한 번만 사용하면 속도를 개선할 수 있음 소스코드 후기 아주 간단한 정렬 알고리즘
[BOJ] 백준 4153 직각삼각형 (Swift) 문제 https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 풀이 직각삼각형의 공식은 $a^2 = b^2 + c^2$ 이다. a는 가장 큰 변의 길이를 의미함 먼저 입력으로 [0, 0, 0] 이 들어올 때 까지 받기 위해 while-let 문법을 사용하였음 sorted 메서드를 사용해 가장 큰 변의 길이를 구하고 공식과 맞는지 확인하는 방법으로 풀 수 있다. 소스코드 후기 직각삼각형 공식을 안다면 쉽게 풀 수 있는 문제
[BOJ] 백준 1259 팰린드롬수 (Swift) 문제 https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 풀이 팰린드롬은 앞/뒤 로 읽어도 똑같은 단어를 의미한다. ex) 기러기, 토마토, 스위스, 역삼역, ... reversed() 메서드를 사용해서 동일하다면 팰린드롬 일 것이다. 또한, 0일 때까지 입력을 받으므로, while let 구문을 통해 입력을 받아주었다. 소스코드 후기 reversed() 메서드를 사용해서 쉽게 풀 수 있는 문제
[BOJ] 백준 2635 수 이어가기 (Swift) 문제 https://www.acmicpc.net/problem/2635 2635번: 수 이어가기 첫 번째 수가 주어진다. 이 수는 30,000 보다 같거나 작은 양의 정수이다. www.acmicpc.net 풀이 문제에 제시된 규칙대로 구현하면 되는 문제 첫 번째 수로 양의 정수가 주어진다. -> 이는 입력으로 주어지므로 입력을 받으면 됨 두 번째 수는 양의 정수 중에서 하나를 선택한다. -> 1번에서 받은 수 보다는 작거나 같아야함 (이유는 4번을 보면 알 수 있음) 세 번째부터 이후에 나오는 모든 수는 앞의 앞의 수에서 앞의 수를 빼서 만든다. 예를 들어, 세 번째 수는 첫 번째 수에서 두 번째 수를 뺀 것이고, 네 번째 수는 두 번째 수에서 세 번째 수를 뺀 것이다. -> 아하 음의 정수가 만들어지면..
[BOJ] 백준 27866 문자와 문자열 (Swift) 문제 https://www.acmicpc.net/problem/27866 27866번: 문자와 문자열 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어 $S$가 주어진다. 단어의 길이는 최대 $1\,000$이다. 둘째 줄에 정수 $i$가 주어진다. ($1 \le i \le \left|S\right|$) www.acmicpc.net 풀이 입력받은 문자열의 i번째 글자를 출력하면 되는 문제 Swift에서는 index로 문자열에 접근할 수 없기 때문에, 문자열을 배열형태로 만들거나, String의 index 메서드를 활용하여 풀 수 있음 index는 1이 아닌 0부터 시작하므로 입력받은 i에서 1을 빼주어서 구해주어야 함 소스코드 후기 Swift에서 index로 문자열에 접근할 수 없어서 당황할 수 있지만, ..
[BOJ] 백준 2920 음계 (Swift) 문제 https://www.acmicpc.net/problem/2920 2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net 풀이 이 문제는 입력받은 배열이 1, 2, 3, 4, 5, 6, 7, 8 과 같이 1부터 8까지 오름차순으로 되어있으면 ascending 8, 7, 6, 5, 4, 3, 2, 1 과 같이 8부터 1까지 내림차순으로 되어있으면 descending 그 외 mixed 를 출력하면 되는 문제 소스코드 후기 sorted 메서드로 쉽게 풀 수 있는 문제 굳이 s..
[BOJ] 백준 2741 N 찍기 (Swift) 문제 https://www.acmicpc.net/problem/2741 2741번: N 찍기 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 반복문에 대해 알고있다면 쉽게 풀 수 있는 문제이다. for, forEach, while문 등 다양한 방법으로 풀 수 있지만, (1...n)의 range와 forEach를 사용하여 풀이했다. 소스코드 후기 문법을 배운지 얼마 안됐거나, 온라인저지에 익숙하지 않을 때 연습겸 풀어볼 수 있는 문제라고 생각함
[BOJ] 백준 2577 숫자의 개수 (Swift) 문제 https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 풀이 먼저 a, b, c를 입력받은 후, 곱을 구해줬다. 곱한 수는 Int 자료형 형식인데, 이를 Int 배열로 변경하여 카운트를 세려고 했는데, Dictionary를 사용하는 것이 더 편할 것 같아서 Dictionary로 변경해주었다. Dictionary의 여러 생성자가 있지만 uniquingKeysWith를 파라미터로 사용하는 생성자를 사용하여, 튜플 형식으로 변환해준 Array를 겹치는 키가 있다면 value를 더하는 방식으로 Diction..

반응형