본문 바로가기

전체 글133

[👾 Programmers] 23. 콜라츠 추측 1. 문제 설명 (📎Link)1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다.1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.  예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다.위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요.단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요... 2024. 6. 28.
[👾 Programmers] 22. 두 정수 사이의 합 1. 문제 설명 (📎Link)두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 2. 제한사항a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다.📝 문제func solution(_ a:Int, _ b:Int) -> Int64 { return 0}  💻 내가 푼 방법 1) 오류 발생  a와 b가 같은 경우도 있으므로 Guard 문으로 조건을 걸러줌 → 실패  2) a가 b보다 커질 경우도 있을 수 있다 → 경우를.. 2024. 6. 28.
[개인과제] 약식 계산기 만들기 - 스토리보드 앱 개발 기초 강의 듣고 처음으로 간단한 계산기앱 만들기 개인 과제를 받았다저번 팀 프로젝트 때 간단한 UI 만들기는 했었는데, 이번에는 조금 더 복잡한 단계들과 간략한 기능까지 구현해야함! 구현 단계 Level 1~8 UILabel 로 숫자 라벨 띄우기Horizontal StackView : 버튼 4개를 모아 가로 정렬 스택 뷰 만들기Vertical StackView : Horizontal StackView 4줄을 세로로 정렬하는 스택 뷰 만들기숫자 버튼과 연산 버튼의 색상 구분하기버튼을 원형으로 만들기버튼을 클릭하면 라벨에 표시되도록 하기초기화 버튼 (AC) 구현사칙연산 버튼 (=) 구현01. 계산기 인터페이스 구현  1️⃣ UILabel 로 계산된 값이 표시될 숫자 라벨 설정      Constai.. 2024. 6. 27.
[🍎 Swift 문법] 제어문 전환 명령어 제어문 전환 명령어란?제어문 전환 명령어는 프로그래밍에서 코드의 흐름을 변경하거나 특정 조건에서 빠져나갈 수 있게 해주는 명령어다코드의 흐름을 제어하여 프로그램이 원하는 대로 동작하도록 하는 데 유용하게 사용된다스위프트에서 주요 제어문 전환 명령어는 break, continue, return, fallthrough, throw가 있다 break반복문이나 switch 문을 즉시 종료한다continue현재 반복 주기를 건너뛰고 다음 반복으로 넘어간다return함수를 종료하고 값을 반환한다fallthroughswitch문에서 다음 case 블록으로 넘어간다throw오류를 던져 예외 처리를 수행한다 01. break break는 반복문이나 switch 문을 즉시 종료한다이 코드는 1부터 4까지 출력하고, i가 .. 2024. 6. 27.
[🍎 Swift 문법] if let & guard let 변수에 값이 있을지 없을지 모르는 상황에서는 Optional을 사용하고,그 값을 안전하게 가져오기 위해 Optional Binding을 사용해서 값을 Unwrapping 한다 여기서 옵셔널 값을 안전하게 추출하기 위해 if let & guard let을 사용한다 01. if let값이 있는 경우와 값이 없는 경우(nil)를 체크한다let 상수에 옵셔널로 할당된 값을 할당함으로서 옵셔널을 벗기는 작업을 진행한다 if let은 옵셔널 바인딩으로 특정 값이 존재하는지 확인하고, 그 값이 존재하는 경우에만 특정 코드를 실행하도록 한다//변수 optionalValue를 Int옵셔널로 선언var optionalValue : Int?//'2' 라는 값이 있어도 없을 수 있는 경우를 대비해 Optinal(2)로 출력됨.. 2024. 6. 27.
[👾 Programmers] 21. 하샤드 수 1. 문제 설명 (📎Link)양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 2. 제한사항n은 1이상 10000 이하인 자연수입니다.📝 문제func solution(_ x:Int) -> Bool { return true}  💻 내가 푼 방법(테스트 성공)func solution(_ x:Int) -> Bool { //들어온 양의 정수 x를 개별적인 정수로 나눠주기 위해 String으로 형변환 var str = String(x) //str값에 map함수 적.. 2024. 6. 26.
[🍎 Swift 문법] 타입 캐스팅 타입 캐스팅이란?변수나 객체의 타입을 다른 타입으로 변환하는 프로세스01. is타입을 체크하는 연산자비교 결과를 bool 타입을 반환한다(타입 체킹)let char: Character = "A" print(char is Character)// 출력값: trueprint(char is String) // 출력값: falselet bool: Bool = trueprint(bool is Bool) // 출력값: trueprint(bool is Character)// 출력값: false  02. as, as!, as?인스턴스의 "타입"을 확인 하거나, 해당 인스턴스를 슈퍼 클래스(부모 클래스)나 하위 클래스(자식 클래스)로 취급하는 방법asas 연산자는 컴파일 단계에서 캐스팅이 실행됩니다. 따라서 항.. 2024. 6. 25.
[👾 Programmers] 20. 정수 내림차순으로 배치하기(업데이트 필요) 1. 문제 설명 (📎Link)함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 2. 제한사항n은 1이상 8000000000 이하인 자연수입니다.📝 문제func solution(_ n:Int64) -> Int64 { return 0}  💻 내가 푼 방법(테스트 성공)func solution(_ n:Int64) -> Int64 { var str = String(n).sorted(by: >) var num = "" for i in str { num += "\(i)" } return Int64(num)!}🔎 의.. 2024. 6. 24.
[개인과제] 카운터앱 만들기 24년 6월 24일 앱개발 입문 1주차 강의 개인과제로 간단한 카운터 앱 만들기 했다감소 버튼 누르면 숫자가 하나씩 떨어지고 증가 버튼 누르면 숫자가 하나씩 증가하는아쥬아쥬 간단한 앱이지만 스토리보드 처음 써보는거라 떨리고 설렘 까먹지 않고 기록하기 위해 남기는 일기 ~! 스토리보드 제작 과정 1. 스토리보드 파일 생성2. 백그라운드 컬러 적용(view → Background  → 블랙으로 변경) 3. 숫자 Label 생성3-1) 디자인: Color - White Color,  Font - System Bold 45size,  Background - Default, textAlignment - center 3-2) Constraints width 80 설정 3-3) Horizontally / Vertic.. 2024. 6. 24.
[👾 Programmers] 19. 정수 제곱근 판별 1. 문제 설명 (📎Link)임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 2. 제한사항n은 1이상, 50000000000000 이하인 양의 정수입니다.📝 문제func solution(_ n:Int64) -> Int64 { return 0}  💻 내가 푼 방법(테스트 성공)func solution(_ n:Int64) -> Int64 { //x는 양의정수이므로 1로 변수 선언 var x = 1 //x의 제곱이 n보다 작을 때 까지 x를 1씩 증가 while x * x x의 제곱이 n이면 x+.. 2024. 6. 23.