본문 바로가기

알고리즘10

[백준](Swift) 1차원 배열 1차원 배열 단계를 해결해보자! 10818 최소, 최대 입력 받은 숫자들 중 최솟값, 최댓값을 찾는 문제다. 이 문제를 풀 때는 components를 사용하면 안 된다. 초반 포스팅에서 언급했듯이 입력을 공백 기준으로 자르는 방법으로 components, split 이 두 가지가 있는데 이 중 더 빠른 방법은 split이므로 이 문제는 split을 사용해야만 시간 초과가 나지 않는다. 잘 비교된 글이 있어서 링크를 첨부한다. Swift split VS components 처음에는 입력을 전부 받고 최솟값을 저장할 minn = 1000000, 최댓값을 저장할 maxn = -1000000을 만들고 입력받은 숫자들을 돌면서 값을 갱신해줬다. 답은 맞았다. 그런데 조금 더 찾아보니 배열에 min(), max().. 2022. 6. 4.
[백준](Swift) 반복문 세 번째 단계인 반복문이다. 2739 구구단 1…9 인 N을 받아서 N단을 출력하는 문제다. 9번 반복하고, print 함수가 인수를 자동으로 공백으로 나눠주니 출력할 것들을 나열하기만 하면 된다. let n = Int(readLine()!)! for i in 1...9 { print(n, "*", i, "=", n * i) } 10950 A+B - 3 숫자를 두 개 입력받아 합을 출력한다. 숫자가 작으므로 오버플로우는 신경쓰지 않아도 되고, T를 받아 반복하니 그 부분만 주의한다. import Foundation let t = Int(readLine()!)! for _ in 1...t { let nums = readLine()!.components(separatedBy: " ").map{ Int($0).. 2022. 5. 28.
[백준](Swift) 조건문 ‘단계별로 풀어보기' 두 번째 단계 조건문이다. if else 문이나 switch문을 사용했다. 1330 두 수 비교하기 정수 A, B를 받아서 두 수를 비교해 부등호 또는 등호를 출력한다. switch로 A - B를 검사해서 양수, 음수, 그 외의 경우에 따라 출력을 다르게 해줬다. switch에서 case를 특정 값으로 검사하지 않고 조건으로 검사하려면 where절을 사용하면 된다. switch 값 { case let 값을받을이름 where 검사할조건1: 실행문1 case let 값을받을이름 where 검사할조건2: 실행문2 case let 값을받을이름 where 검사할조건3: 실행문3 } // 예시 point:(Int, Int) switch point { case let (x, y) where x .. 2022. 5. 13.
[백준](Swift) 입출력과 사칙연산 백준 '단계별로 풀어보기'에서 1단계부터 하나씩 풀어봤다. (번호를 클릭하면 문제 링크로 연결됩니다.) 2557 Hello World 가장 간단한 출력을 해볼 수 있는 문제. C++에서 main 함수를 따로 만들었던 것과 다르게 스위프트는 그냥 명령하면 된다. print("Hello World!") 10718 We love kriii 주어진 문장을 두 번 출력한다. 스위프트의 print() 함수는 기본으로 문장 끝에 개행을 해주기 때문에 그냥 두 번 print 해주면 된다. 문장이 같기 때문에 반복문을 사용해도 된다. print("강한친구 대한육군") print("강한친구 대한육군") for _ in 0.. 2022. 5. 10.