Swift 코딩테스트/Swift 코테 기초(13)
-
[Swift 코테 기초] -1을 입력받을 때까지 while let 사용하기
- -1을 입력받으면 종료하는 while문, 입력값을 계속 사용해야할 때 사용할 수 있다. while let input = readLine(), input != "-1" {}
2023.04.03 -
[Swift 코테 기초] 제곱근으로 약수 구하기
1. 약수 구하기 - N을 1부터 N까지의 수로 나눠서 그 값이 0이 되면 나눈 수는 N의 약수이다. 하지만 이 방법은 매우 비효율적이다. - N의 약수는 N의 제곱근보다 클 수 없기 때문에 범위를 N/2로 한다. - 주어진 수의 제곱근을 넘어선 약수는 이미 이전에 발견한 약수와 곱하여 나타낼 수 있기 때문 - 범위가 N/2이기 때문에 리턴 배열에 N이 포함되지 않으므로 추가해준다. ex) 36의 경우 6까지만 탐색한다. 6 이상의 숫자는 이미 이전에 발견한 약수와의 곱으로 표현할 수 있다. (12 * 3, 3 * 12) func solution(_ n: Int) -> [Int]{ return Array(1...n/2).filter { n % $0 == 0 } + [n] } print(solution(1..
2023.04.03 -
[Swift 코테 기초] reverse()와 reversed(), ReversedCollection<Array<Element>> 사용 방법
1. reverse() reverse()는 새로운 배열을 리턴하지 않고 배열 그 자체를 변경한다. var arr = [Int](1...10) arr.reverse() print(arr) //[10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 2. reversed() reversed()는 컬렉션에서 역전된 순서의 요소를 새로운 뷰로 반환한다. 즉 원래 컬렉션의 값에는 변화가 없다. A ReversedCollection instance wraps an underlying collection and provides access to its elements in reverse order var arr = [Int](1...10) arr.reversed() print(arr) //[1, 2, 3, 4, 5,..
2023.02.22 -
[Swift 코테 기초] 배열 초기화 하기, [1, 2, 3, 4, ..., n] 증가하는 배열 초기화하기
var arr = [Int](1...10) //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] var n = 10 var arr2 = [Int](1...n) //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2023.02.22 -
[Swift 코테 기초] 2차원 배열에서 최소, 최대 찾기
let arr = [[50, 10, 30], [-10, -20, -30, -500], [100,200,300, -400]] let max = arr.map({$0.max()!}).max()! //300 let min = arr.map({$0.min()!}).min()! //-500
2023.02.16 -
[Swift 코테 기초] 고차함수를 이용해서 값을 더하고 정렬하기
고차함수: 전달인자로 함수를 전달받거나 함수 실행의 결과를 함수로 반환하는 함수 고차함수 - https://ksk9820.tistory.com/127 숫자가 주어지고 값을 더해야 할 때 -> reduce 함수 이용 - 내부의 콘텐츠를 하나로 통합할 때 사용 initialResult: 축적되는 값의 초기 값, 클로저에서 처음으로 실행될 값 nextPartialResult: 이때까지 축적된 값과 이후에 축적될 값을 순서로, 다음 호출에서 또 사용될 값이거나 리턴될 값 reduce(초기값, 어떻게 통합할지) let arr = [10, 20, 30, 40, 50] arr.reduce(0, +) //150 arr.reduce(0, -) //-150
2023.02.08 -
[Swift 코테 기초] 대각선 찾기, 판별하기
일직선상에 있는 좌표 1 (x1, y1)과 좌표 2 (x2, y2)의 x 간의 거리와 y 간의 거리가 같다면 두 좌표는 같은 대각선 위에 위치한다. x 간의 거리와 y 간의 거리가 같다면 => |x1 - x2| == |y1 - y2|
2022.09.07 -
[Swift 코테 기초] 숫자와 문자 구별하기, uppercased()
"123"과 "abc"는 String입니다. 하지만 "123"을 123으로 인식하기를 원할 때 uppercased()를 통해 구분할 수 있습니다. uppercased(): 애플 문서에 따르면 uppercased() 함수는 string을 대문자로 복사해서 리턴하는 함수입니다. string을 uppercased()했을 때 값이 같으면 -> 숫자 다르면 -> 문자 로 구분할 수 있습니다. if str == str.uppercased() { print("숫자: str: \(str), str.uppercased(): \(str.uppercased())") }else{ print("문자: str: \(str), str.uppercased(): \(str.uppercased())") } //str = "abc" 문자..
2022.06.16 -
[Swift 코테 기초] Dictionary key값과 value값 reverse하기
swift에서 딕셔너리 key값과 value값을 교환하는 방법 var reverse = [String: String]() for j in original { reverse[j.value] = j.key }
2022.06.16 -
[Swift 코테 기초] String 공백 없이 쪼개기, 내림차순정렬, print문 terminator
1. String을 공백 없이 쪼개는 방법 1-1 보다 더 간편한 방법을 찾았다. var string1 = Array(readLine()!) //["A", "B", "C", "D", "E", "F"] var string2 = "ABCDEF".map{String($0)} //["A", "B", "C", "D", "E", "F"] + Int형으로 변환 var string = "12345".map{Int(String($0))!} //[1, 2, 3, 4, 5] 1-1. 참고 1. 123456 -> [1,2,3,4,5,6] 으로 변환하는 방법 var num: String = readLine()! var arr = [Character]() for index in 0.. Int 형 변환: map을 사용해서 - ch..
2022.06.02 -
[Swift 코테 기초] String to Character
var test = readLine()!.map({ (value) in Character(extendedGraphemeClusterLiteral: value) }) //input = "oxoxoxoxo" //test = ["o", "x", "o", "x", "o", "x", "o", "x", "o"]
2022.03.10 -
[Swift 코테 기초] 입출력
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 많이 참고했습니다! 감사합니다. https://lxxyeon.tistory.com/66 [iOS] 알고리즘, 코딩테스트 준비하기 - Command Line Tool, LeadLine, Split, Components, map, print 사용하기 Swift로 코딩 테스트 준비, 세팅하기 Swift 입력하기 Swift로 코테를 준비하려고 하니! 어떻게 입력을 받아서 처리하지...? Swift로 입력을 받기 위해선 project 생성시, playground, app이 아닌 새로운 탬플릿 lxxyeon.tistory.com https://twih1203.medium.com/swift-알고리즘에-필요한-swift-basic-..
2022.02.10