본문 바로가기

전체 글

[Algorithm] 문자열 나누기 (w/ Swift) 주어진 문자열을 문자 배열로 변환한 후, 연속된 문자 그룹을 세는 방식으로 풀면 된다. 연속된 문자 그룹이 완성될 때마다 result를 증가시키고, 완성되지 못한 그룹이 있을 경우에도 result를 증가시킨다. 문자열 나누기(shortcuts) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr language = swift func solution(_ s: String) -> Int { var stringValue = Array(s) var x = stringValue[0] var x_cnt = 0 var not_x_cnt = 0 var result = 0 .. 더보기
[Algorithm] 아이스 아메리카노 (w/ Swift & Python) 나눗셈의 몫과 나머지를 구하는 문제로, 변수를 선언하지 않고 곧바로 가격으로 나누어도 된다. 스위프트에서는 상수를 선언하는 let 으로 가격 변수 yeon을, 파이썬에서는 변수의 이름(yeon)만 만들어서 담아 주었다. 아이스 아메리카노(shortcuts) language = swift func solution(_ money:Int) -> [Int] { return [money / 5500, money % 5500] } func solution(_ money:Int) -> [Int] { let yeon = 5500 return [money / yeon , money % yeon] } language = python def solution(money): answer = [money//5500, money%.. 더보기
[iOS] UIKit - UIViewController, UIView, AutoLayout 2024년 3월 18일 월요일 기본적인 큰 줄기 개념 위주로 훓어보고, 디테일하게 다시 파고들 예정. 실제로 부딪혀 보는 경험이 중요할 것 같다. 📌 UlKit = User Interface Kit 사용자 인터페이스를 관리하고 이벤트 처리가 주목적인 프레임 워크(framework) = Object Library가 모인 뼈대(frame) 📌 UIView 화면을 구성하는 요소의 기본 클래스. 여러 UI 컴포넌트들을 보여준다. 여기서 '요소'란 Label이나 Button과 같은 Components, 하위 클래스 📌 UIViewController 앱의 근간으로, 전체적인 인터페이스의 레이아웃을 관리하며 다른 뷰 컨트롤러와 앱을 구성한다. 📌 AutoLayout 제약 조건(Constraints)을 이용해서 뷰의 .. 더보기
[Algorithm] 문자열 출력하기 (w/ Swift & Python) print, readLine()을 이해한다면 쉽게 풀 수 있는 문제 문자열 출력하기 (shortcuts) language = swift 나의 풀이 ▽ let yeon = readLine()! print(yeon) 남의 풀이 ▽ print(readLine() ?? "") ?? 연산자는 옵셔널 값이 nil인 경우에 대한 대체 값을 제공하는 역할을 한다. language = python str = input() print(str) 더보기
[Algorithm] 무작위로 K개의 수 뽑기 (w/ Swift & Python) 배열에서 중복되지 않는 요소를 최대 k개까지 추출하는 코드를 짜는 문제로, 추출된 요소의 개수가 k보다 적다면, 남은 공간을 -1로 채우면 된다. 무작위로 K개의 수 뽑기 (shortcuts) language = swift func solution(_ arr:[Int], _ k:Int) -> [Int] { var yeon: [Int] = [] for i in arr{ if yeon.count < k { if yeon.contains(i) == false { yeon.append(i) } } } if yeon.count < k { (yeon.count...(k-1)).forEach{ _ in yeon.append(-1) } } return yeon } 예를 들어, arr 배열이 [1, 2, 3, 2, 4,.. 더보기
[Flutter] Widget, Android Material, iOS Cupertino 위젯이 무엇인지, 플러터에서 사용하는 위젯의 종류는 무엇인지 알아봅니다. 위젯(Widget): Flutter는 모든 것이 위젯(Widget)으로 만들어져 있는데, 이는 레고 블럭과 같이 앱을 만드는데 사용되는 작은 모듈로 이 위젯들을 조합해서 화면을 그린다. 조합이 나무와 같이 생겼다하여 위젯 트리(Widget Tree)라고 한다. 출처 : pixabay Android Material & iOS Cupertino : 특정 플랫폼에 종속되지 않은 고유의 디자인을 입힌 커스텀 위젯(Custom Widget)도 쉽게 만들 수 있다. → Flutter 위젯 카탈로그 머터리얼 위젯(Material Widget) : Android에서 사용되는 기본 화면 구성 요소를 Flutter에서 재현한 위젯 쿠퍼티노 위젯(Cu.. 더보기
[Swift] Closure, Higher Order Function 2024년 3월 16일 토요일 익명 함수 closurer와, 다른 함수를 인자로 받거나, 함수의 결과로 함수를 반환하는 고차함수(map, filter, reduce)를 공부해 봅니다. #1. Closure #2. Higher Order Function (고차함수) #1. Closure 이름없는 함수 즉, 코드 블록을 말한다. ('closure'라는 단어가 참 잘 어울린다.. ) 상수나 변수의 참조를 캡쳐(capture)해 저장할 수 있습니다 주변 환경에 있는 변수나 상수를 캡처하여 저장하고, 이를 나중에 사용할 수 있도록 하는데 이것은 클로저가 생성될 때 클로저가 참조하는 변수 또는 상수의 값에 대한 복사본을 유지하고 저장하는 메커니즘이다. 값(value) 캡처: 클로저가 변수나 상수의 값을 캡처한다... 더보기
[Algorithm] 각도기 (w/ Swift & Python) 평각일 때 4, 둔각일 때 3, 직각일 때 2, 예각일 때 1을 구하는 코드를 짜는 문제로, if 조건문을 사용할 때 swift 언어에서는 else if, python 언어는 elif 라고 표현하는 점을 유의해야 한다. 각도기 (shortcuts) languate = swift func solution(_ angle:Int) -> Int { if angle == 180 { return 4 } else if angle > 90 { return 3 } else if angle == 90 { return 2 } else { return 1 } return 0 } 마지막 줄에 있는 return 0은 실행될 일이 없으므로 제거해도 될 것은데 넣어봤다. 함수의 반환값은 이미 위의 조건문 중 하나에 해당하기 때문에 .. 더보기