반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ios
- 플러터
- URLSession
- attributedText
- ListTile
- Flutter
- userdefaults
- Wil
- Xcode
- 내배캠
- UISlider
- pop up button
- strikeThrough
- 메모장만들기
- 코드스니펫
- DART
- pull down button
- 개발자
- 스파르타코딩클럽
- 앱개발
- Storyboard
- 알고리즘
- 내일배움캠프
- Swift
- 날짜처리
- 계산기만들기
- 커맨드라인툴
- todolist
- Storyboard Reference
- 오토레이아웃
Archives
- Today
- Total
이리메라 갖다가
[Swift] 알고리즘 문제 - 몫 구하기, 배열 뒤집기, 문자열 뒤집기 본문
728x90
반응형
알고리즘 스터디
1. 몫 구하기
- 몫을 구하는 연산자: /
- return num1 / num2
- 제한사항을 고려해서 조건문을 추가 작성
import Foundation
func solution(_ num1:Int, _ num2:Int) -> Int {
if num1 > 0 && num1 <= 100, num2 > 0 && num2 <= 100 {
var answer = num1 / num2
return answer
} else {
return 0
}
}
- 부울연산자 : 불리언 값의 논리연산을 수행함
- NOT : !A
- AND : A && B
- OR : A || B
좀더 간단하게 return 을 계산값 자체로 변환할 수도 있다.
func solution(_ num1:Int, _ num2:Int) -> Int {
guard 1...100 ~= num1, 1...100 ~= num2 else { return 0 }
return num1 / num2
}
- 범위연산자(A...B) : A부터 B까지의 수를 묶어 범위를 표현함(A와 B는 포함)
- 비교연산자(~=) : 패턴이 매치되는지 확인
📍
처음엔 제한사항을 무시하고 나눈 값을 바로 return 하는 코드로 작성했는데,
테스트 값이 만족할 때는 에러가 없었지만 검증을 위해 여러 값을 받을 때는 오류가 발생했다.
문제를 정의할 때 제한사항, 필수사항들을 놓치지 말고 한단계씩 구현하는 습관을 길러야겠다.
2. 배열 뒤집기
- 배열 요소의 갯수를 구하는 프로퍼티 : count
- 배열 원소의 최솟값, 최댓값 프로퍼티 : min, max
- 배열을 뒤집는 메서드 : reverse(), reversed()
- reverse() : 기존 배열을 바꿈(덮어쓰기)
- reversed() : 기존 배열은 그대로 두고 새로운 배열로 나타냄
import Foundation
func solution(_ num_list:[Int]) -> [Int] {
return num_list.reversed()
}
📍
Swift에서 기본으로 내장된 메서드를 잘 활용할 줄 알아야 하며, 해당 메서드를 사용할 때는 항상 import Foundation을 작성해야 한다. Swift 공식 문서를 꼭 확인하자 Swift Programming Language Guide(ENG)
3. 문자열 뒤집기
- 배열 뒤집기와 마찬가지로 reversed() 메서드를 활용
- 🚨 return 값을 String으로 묶어주지 않으면 에러 발생 error: cannot convert return expression of type 'ReversedCollection<String>' to return type 'String'
import Foundation
func solution(_ my_string:String) -> String {
return String(my_string.reversed())
}
알고리즘 문제 푸는걸 처음해봤는데, 머리로는 너무 간단한데 실제 코드를 작성하려고 보니까 막상 안쳐지는거다..
그리고 기본 작업 툴에서는 자동완성도 있고 모르면 옵션으로 찾아볼 수도 있는데 아무 도움도 안주는 툴로 하니까 머리가 새하얘졌다..
기초중에 기초인 문법을 하루라도 빼놓지 않고 공부해야겠고, 오류코드도 따로 메모해둬서 리뷰를 해야겠다.
728x90
반응형
'TIL' 카테고리의 다른 글
[Swift] Command Line Tool로 키오스크 만들기(2) : GDC, Dispatch Queue, Main/Global Queue 멀티스레드 (0) | 2023.07.28 |
---|---|
[Swift] Command Line Tool로 키오스크 만들기(1) : 기획, 정규식(유효성 검사) (0) | 2023.07.26 |
[Swift] 클로저(Closure), enumerated() (0) | 2023.07.24 |
[Swift] 호텔 객실 예약 프로그래밍(2) : date, 날짜 다루기 (0) | 2023.07.21 |
[Swift] 호텔 객실 예약 프로그래밍(1) : Array, sorted(), 랜덤값 추출 (0) | 2023.07.20 |