Algorithm

Algorithm

Swift로 프로그래머스 문제 풀기 - 숫자 문자열과 영단어

swift로 풀면 이득보는 것 같은 문제였다. 문제의 내용을 보면 영어와 숫자가 섞여서 나오는 문자열을 숫자로 바꾸는 문제였다. replacingOccurrences를 쓰면 금방 풀릴 것 같았는데 실제로도 금방 풀렸다. func solution(_ s:String) -> Int { var resultString: String = s enum Numbers: String, CaseIterable { case zero, one, two, three, four, five, six, seven, eight, nine var intValue: Int { switch self { case .zero: return 0 case .one: return 1 case .two: return 2 case .three: re..

Algorithm

Swift로 프로그래머스 문제 풀기 - 로또의 최고 순위와 최저 순위

오늘의 알고리즘은 로또의 최고 순위와 최저 순위 알아보기. 아니 문제를 읽다보니 수학문제 같은 느낌이 났다. 누가 달력을 찢어서 없어지고,, 물을 엎어서 숫자가 없어지는... 이 문제도 동생이 낙서를 하는 바람에 번호의 일부가 유실되어 시작된 것. 유실된 번호는 0으로 줄테니 당첨 번호와 비교했을 때 나올 수 있는 최고 순위와 최저 순위를 [Int]로 반환하면 되는 문제였다. 예시를 보면 더 이해가 쉽다. 모든 숫자가 안보여서(동생 진짜 때리고 싶겠다) 내가 선택한 로또 번호인 lotts에 0이 여섯개 들어오면 1등 번호인 win_nums 배열과 비교했을 때 가능한 최고 등수는 1등이고 최저 등수는 6등이다. 내가 푼 방법은 아래와 같다. func solution(_ lottos:[Int], _ win_..

Algorithm

Swift로 Leet Code 문제 풀기 - 28. Implement strStr() (Easy) - range(of:)/distance(from: to:) 사용해보기

28번 문제는 strStr 구현하기. 주어진 hayStack 문자열과 subString이 될 niddle 문자열을 받아 hayStack에 niddle이 있는 경우 첫번째 인덱스를, 없는 경우 -1을 반환하는 문제. swift는 지원해주는 메서드가 많아서 왠지 내장 함수를 잘 쓰면 될 것 같단 생각에 hayStack.해놓고 메서드들을 유심히 들여다봤다. 설명을 보니 range(of:)가 subString에 대한 range를 반환해주는 것 같아 사용했다. 근데 return형이 Range형이어서 Range의 lowerBound를 사용하도록 구현했다. (시작 지점을 알기 위해서는 lowerBound를 사용, 끝 지점을 알려면 upperBound를 사용) 근데 이게 또 String.Index다 보니 반환형인 In..

Algorithm

Swift로 Leet Code 문제 풀기 - 27. Remove Element (Easy)

이번의 easy 문제는 배열에서 주어진 숫자를 지우는 것. 정렬도 상관할 필요 없다. 검증에서 정렬 후 사용하기 때문에 주어진 숫자를 지우기만 하면 됐다. 검증 예시를 보면 removeElement를 호출한 뒤 배열의 길이를 검사한 후 sort로 배열을 정렬한다. 그 이후 정답을 확인하니 무조건 주어진 숫자만 지우면 끝. 처음에 문제 설명 안읽고 예제만 봤는데 ouput의 nums에 배열 순서가 바뀌었길래 읭?? 스러워서 다시 문제부터 읽고 내려왔다. 문제를 이해하고 나니 코드는 아주 간단하게 구현할 수 있는 문제였다. func removeElement(_ nums: inout [Int], _ val: Int) -> Int { nums = nums.filter { $0 != val } return num..

eunjuicy
'Algorithm' 카테고리의 글 목록