전체 글

야구돌이 집사의 코딩 그리기
TableViewCell의 중요성 재사용 메커니즘의 중요성 : 재사용을 올바르게 구현하지 않으면 메모리 부족과 성능 저하가 발생할 수 있으므로, 재사용 메커니즘을 이해하고 적절히 구현해야 함. 셀의 재사용 식별자의 중요성 : 셀의 재사용은 식별자를 통해 이루어지며, 고유한 식별자를 사용함으로써 셀의 일관된 재사용을 보장 셀의 생명 주기 이해: 특히 셀이 표시되기 전과 표시된 후에 필요한 초기화 및 정리 작업을 올바르게 처리하는 것이 중요 구조체와 클래스 구조체(struct): 값 타입(value type)으로, 데이터와 메서드를 포함할 수 있는 논리적인 캡슐화 단위. 구조체는 값 복사에 의해 전달됨. 클래스(class): 참조 타입(reference type)으로, 데이터와 메서드를 포함하는 객체. 클래..
문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요. 제한 사항 d는 부서별로 신청한..
학습 목표 스탠다드 반에서 진행한 Auto Layout을 똑같이 따라서 만들어보자. 최종 목표 기초 일단 기본적인 스토리보드상 구조는 이러하다. 이제 구성을 보자. 뷰 안에 스택뷰를 넣었다. 이 때 스택뷰도 오토레이아웃을 당연히 잡아야하는데 view의 크기와 동일. 이미지를 1:1 비율로 설정하는 방법 스택 뷰를 동일한 사이즈로 채우는 방법 부모 스택뷰의 크기를 내부 구성 버튼이 정하게 하는 방법 비율이 다르게 버튼 설정하기 오늘의 마무리 이미지가 없어서 완성은 못했지만 기본적인 매커니즘의 이해에 중점을 둔 공부였으니 만족한다.
문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한 사항 n은 1 이상 100,000,000 이하인 자연수입니다. 1차 고민 어제 같이 공부하시던 분이 radix를 써서 진법 변환하는게 있던데 알아보고 사용하면 쉬울 것 같다는 생각이 든다 1차 코드 import Foundation func solution(_ n:Int) -> Int { var str1 = String(n, radix: 3) var str2 = "" for i in str1.reversed() { str2.append(i) } var str3 = Int(str2, radix: 3)! return str3 }..
map 시퀀스의 요소에 주어진 클로저를 매핑한 결과가 담긴 배열을 반환 compactMap 시퀀스의 각 요소에 변형을 준 뒤, nil이 아닌 결과가 담긴 배열을 반환 둘의 차이점은? "compactMap은 nil이 아닌 값들만 선택적으로 반환한다" 예시 let test: [String] = ["1", "/2/", "three", "5", "1s"] 해당 배열에서 Int로 변형할 수 있는 요소들만 가져오려고 할 때, Int값의 리턴 타입은 Int? 이다. 옵셔널인지 확인해보자. let stringOfInt = "456" print(Int(stringOfInt)) // Optional(456) let stringOfDouble = "0.01" print(Int(stringOfDouble)) // nil 이제..
문제 설명 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. 제한 사항 s의 길이는 1 이상 150,000 이하입니다. s에는 '1'이 최소 하나 이상 포함되어 있습니다. 1차 고..
문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 제한 사항 두 수는 1이상 1000000이하의 자연수입니다. 1차 고민 for문 하나에 if로 % == 0 조건걸면 끝나는거아닌가요 1차 코드 func solution(_ n:Int, _ m:Int) -> [Int] { var num = 1 for i in 1...min(n, m) { if n % i == 0 && m % i == 0 { num = i } } return [num, (n *..
시작한 이유 같이 공부하는 지인의 코드를 보고 완료선이 다른 셀에 그어지는 문제를 고쳐주다가 해당 지인이 완료선과 함께 글씨색을 바꾸는 것을 보고 따라서 만들었다. 코드 지인의 코드를 보다보니 나도 별도의 매서드를 만들고 클로저에 대한 값으로 cell에 넘겨주어야하는지 고민을 해보았다. 하지만 생각해보니 나는 updateCompletedLine이라는 함수가 Didset으로 설정이 되어있고 스위치를 누를 때마다 sender로 cell의 내용을 변경해주기에, 그리고 원래 textColor라는 UIColor가 존재하기에 그냥 완료선을 그을 때 같이 설정하면 된다고 생각했다. 그래서 해당 코드가 나왔는데 다시 생각해보니까 이러면 매서드 이름을 좀 바꾸어야겠다. 선만 바꾸는 작업이 아니니까...
문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 1차 고민 누가 봐도 스택을 활용한 문제인거같긴하다. 그런데 올바른지만 판단하는 과정에서 꼭 스택을 사용해야하는건 아니니까 이름만 스..
sngsp
[Sngsp] Coding Drawing