1. `readLine()!`으로 입력을 받는다. 2. `components(separatedBy: [" "])` 공백을 기준으로 입력된 값을 분할한다. 3. `map { Int($0)! }`로 각 인자를 Int형으로 반환하여 담아준다. 4. 결과적으로 `n = [5,
[Programmers][Lv.1][Swift] 콜라츠 추측
[Programmers] [Lv.1] [Swift] 최대공약수와 최소공배수
제일 작은 수 제거하기배열의 최솟값을 구한다최솟값의 인덱스를 구한다그 인덱스를 삭제하고 반환한다remove(at: index) : 배열의 해당 인덱스 값을 지운다array.min()! : 배열의 최솟값을 반환한다arr.firstIndex(of: value) : 배열을
정수 제곱근 판별import Foundation, sqrt()로 제곱근 구하는 함수가 있다는 것근데 실수형이라서 Float 또는 Double 형으로 제곱근을 구해야한다는 것삼항 연산자를 좀 더 활용해봐야겠다.
정수 내림차순으로 배치하기Int형 변수를 각 숫자 단위로 쪼개 배열에 담는다.배열을 역정렬시킨다.그 배열을 순서대로 String에 담는다.String -> Int64로 형변환하여 반환한다.스택오버플로우를 찾아가며 혼자 풀어낸거에 뿌듯함 + 10코드가 5줄밖에 안되는거에
자연수 뒤집어 배열로 만들기숫자를 문자로 변환 후 반전 : String(String(n).reversed()).각 문자가 정수형이라면 반환 : $0.wholeNumberValue반환된 숫자의 nil을 제거하고 옵셔널 바인딩 : compactMap{}"\\(n)"으로 한
자릿수 더하기바로 직전에 배운 "\\(n)".compactMap{}를 사용했다.근데 reduce하고 compactMap도 O(n)이라서 생각보다 빠르지 않았다.{height=300px}Array만 reduce 될거라고 생각했는데 두번째 인자를 {$0+Int(String
이상한 문자 만들기공백을 만나면 인덱스를 초기화 시키고 반환할 ans에 공백을 추가하고임시로 만들{: height="300"}{: height="300"}나랑 비슷하게 풀었는데 배열을 안쓰고 푼 경우!i가 Character니까 String(i)으로 바꿔서 += 하면되는
약수의 합n의 약수(나누어 떨어지는 수)들을 다 더해주면 되는 간단한 문제다.근데 이제 0을 곁들인 .. 예외처리 못해서 하나 계속 틀렸었다.그리고 처음에 배열에 다 때려넣고 reduce(0, +)했는데 시간복잡도 O(n)라 런타임 에러났었다.filter도 O(n)으로
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다.
문자열을 정수로 바꾸기Int(string)! 으로만 계속 풀어왔지만 nil 병합 연산자를 사용해보고 싶었다.자동 예외처리 너무 좋고 ㅎㅎㅎnil값은 없는 테스트였나보다..🙄
수박수박수박수박수박수?딱히 풀이할게 없는 단순한 문제였다.
혹시 나는 그냥 엉덩이가 무거운 개발자인가 ..?
2점 ... 2점 ..? 2점이라니.. 너무해..
Hits문자열 다루기 기본문자열을 숫자로 변환해서 문자열인지 확인만 하면 되는 문제!인 줄 알았으나 이제 문자열의 특정 길이를 곁들인...문자열.allSatisfy({ $0.isNumber }) 문자열이 숫자인지 한번에 확인하는 방법 - O(n)if 조건문 ? 맞으면여
Hits문자열 내림차순으로 배치하기2점을 받을 걸 보니.. 더 빠른 방법이 있었나보다.왜 문자를 바로 sorted 가능할거라고 생각 못했지..
Hits문자열 내 p와 y의 개수처음엔 s.lowercased() 를 사용해서 소문자만 체크했는데 중간에 런타임 에러가 났었다.공식문서를 참고하니 시간복잡도가 O(n)이라서 그랬나보다.이건 보자마자 런타임 에러가 날 것 같은데 왜 안났지?! 싶었다.components의
Hits 문제 > [문자열 내 마음대로 정렬하기](https://scho
Hits 문제 > [나누어 떨어지는 숫자 배열](https://school.program
Hits 문제 > 두 정수 사이의 합 풀이 🤔 FEEDBACK 삼항 연산자를 사용해서 금방 풀 수 있었다. 다른 풀이
Hits가운데 글자 가져오기문자열 익스텐션을 사용해서 쉽게 풀었더니 1점이 나왔다.더 어렵게 풀었어야 했나 ..
[Programmers] [Lv.1] [Swift] 부족한 금액 계산하기
나머지가 1이 되는 수 찾기제한사항이 3 ≤ n ≤ 1,000,000이니까 2부터 확인
문제 > [최소직사각형]( ) 문제파악하기 회전시켰을 때를 고려하라고 해서 처음엔 어렵게 느껴졌다. 근데 각 요소를 정렬시키면 왼쪽이 작은값, 오른쪽이 큰 값이 되니까 회전했다고 볼 수 있었다. 예를 들어 첫번째 예시인 [[60, 50], [30, 70], [60, 30], [80, 40]] 이 배열은 각 요소를 정렬시키면 [[50, 60], [30,...
요즘 계속 낮은 점수만 받는 거 보면 너무 간단하게만 풀려고 하고 있지 않나 생각하게 된다.처음엔 날짜 계산 관련 함수가 있지 않을까라는 생각을 했었는데 간단한 문제를 복잡한 길로 돌아가는 것 같아서 그만 두었다.근데 아래에 그 복잡함을 무릎쓰고 풀어낸
two pointer 방식을 생각하고 맨 마지막 값을 pop 시켜서 서로 다른 인덱스가 계속 더해지도록 했다.Set을 통해 중복을 제거한채로 Array를 sorted() 하여 반환했다.
작은 예산부터 담아가며 예산을 초과하지 않을 때 까지 숫자를 세면 된다.너무 단순하게 푼 건 아닌가? 싶을정도로 코드는 단순한데 생각보다 오래걸렸다.처음엔 array로 접근하고 popLast를 이용해서 풀고싶었다.시간복잡도가 O(1)이라서 .. 그런데 로직을
Hits 문제 > 3진법 뒤집기 문제파악하기 n을 0이 될 때 까지 나누어 문자열로 반환하면 뒤집히니 3진법 수가 나온다. 이를 다시 10진법으로 변경해주면 된다. 풀이 🤔 FEEDBACK radix 함수를 모르면 풀 수 없는 문제 Int(reversedRa
Hits 문제 > 약수의 개수와 덧셈 문제파악하기 주어진 left와 right 사이의 수를 탐색하여 약수의 수를 count하고 그 수가 짝수라면 더하기, 홀수라면 빼는 알고
Hits 문제 > 모의고사 문제파악하기 점수 [수포자 번호 : 맞은 개수] 그 value에 1을 누적해가면서 각 수포자의 맞은 개수를 카운팅한다. 풀이 🤔 FEEDBACK 한참 Array에 정답 맞춘 개수 카운트해서 따로
문자열을 하나씩 탐색한다.( 일 때 +1, ) 일 때 -1로 카운트하면한 쌍을 이룰 때 0이 유지되고왼쪽부터 카운트 하기 때문에 ) 가 하나라도 더 많을 경우 음수가 되니 바로 false 반환끝까지 확인한 경우 카운트가 0 이라면 true, 아니라면
Hits 문제 > K번째수 문제파악하기 풀이 🤔 FEEDBACK 다른 풀이
Hits 문제 > 소수 만들기 문제파악하기 sum이라는 배열을 만들어 3개의 숫자 합을 전부 담아준다. 세개의 합을 구하기 위해 반복문 끝을 배열 길이 -2로 설정한다. i보다 한칸 뒤의 위치를 j, 그 뒤를 `k
동일한 길이의 배열이 주어진다.한쪽은 양수인지 음수인지만 판별하고 1 또는 -1을 곱하여 더한 것을 누적하면 된다.다른 답들을 보니까 고차함수 써볼걸 하는 후회가 밀려온다 .. 😳내일부터 백준 브론즈 5 도장깨기 하면서 고차함수 연습 실컷 해야겠다.