IOS [ Swift ](22)
-
23.08.04 문자열 정렬하기 알고리즘 / 계산기 constraints
저번에 풀었던 문자열 정렬하기문제의 새로운풀이방식을 공유해보고자 글을 쓰게되었다. 우선 나와는 다른풀이를 팀원분께서 작성해주신건데, 그 풀이가 너무 신박해서 가져왔다. 코드의 작동방식에대해서 풀이해 보자면 일단 my_string 안에있는 값이 문자와 숫자의 혼합된 형태인데, 그 안에있는 숫자만뽑아서 오름차순 정렬하는게 문제의 핵심이다. 나는 이 문제를 먼저 charcter값으로 문자들을 변환 후 , for문을돌려 숫자인 문자들을 추출해 다시 Int값으로 돌려주고 sorted로 오름차순 정렬로 풀어내었는데 이 풀이방식은 먼저 my_string을 map함수로 묶어주고 그 맵핑된 my_string을 (testList) 다시 compactMap으로 묶어주어서 Int값만 찾아낸다. 빨간색으로 변환시킨문장이 잘 이..
2023.08.05 -
23.08.03 IBAction&ViewController 의 개념과 알고리즘 문자열정렬하기 문제
먼저 IBAction 을 알려면 IBOutlet 부터 알아야한다. IBOutlet의 예로 오늘 내가만든 주사위던지기 앱 화면을 가져와보겠다. IBOutlet 이란 내가 만든 오브젝트들을 코딩으로 구현하기위해 앞으로 이 오브젝트를 코드로 구현할 수 있다고 선언해주는것이다. ⬆️IBOutlet을 만들어내는 구현영상 그렇게 아웃렛을 만들어 냈다면 , 이제 그 아웃렛 ( 각각의 오브젝트 ) 에 액션을 넣어주기위해서 IBAction함수를 넣어주는것이다. 액션이라하면 버튼누르기 , 줌 , 줌아웃 이런것들이 있겠지? 그렇게 해서 오늘 만든 주사위 던지기 어플이다. ⬆️주사위 어플 시현영상 // // ViewController.swift // Dicee-iOS13 // // Created by Angela Yu on ..
2023.08.03 -
23.08.02 SWIFT 알고리즘 문제풀이 / 숫자찾기 & 문자열 정렬하기
오늘 풀어본 첫번째 문제는 숫자 찾기이다. 알고리즘 문제를 풀때는 항상 어떻게 코드로 그려낼지를 고민해야한다는 것에 중점을 두고, num 안에서 k 의 값을 찾아내어 그 k의 값이 몇번째자리에 있는숫자인지를 계산하는 식을 생각해냈다. 그리고 몇번째 자리에있는 숫자인지를 표현할때는 보통 array값이 0부터 시작하니 +1을 해서 return 값을 추출해내는걸로 나름의 치밀함을 갖추고 코드를 짰는데 , 역시나 문법이 부족한탓에 계속 문법적인곳에서 실수를 하는것같다. func solution(_ num:Int, _ k:Int) -> Int { // num이 인트값이라 배열이아님 for (index , value) in num.enumerated(){ // index 0 1 2 3 4 // value 2 9 1..
2023.08.02 -
23.08.01 swift ios ui / 공식문서 참조
포스팅 형식을 너무 일기처럼 쓰는것같아서 배운점과 오답노트형식의 서술로 바꿔보려고한다. swift에서는 어플리케이션을 다운받아서 실행했을때의 화면을 마음대로 커스텀할수있다. 이 화면에서 자신이 넣고싶은 오브젝트를 골라서 화면에 넣을 수 있다. 이미지를 넣고싶으면 이미지를 , 텍스트를 넣고싶으면 텍스트를 넣을 수 있는것이다. 포토샵처럼 텍스트를 삽입하면 디자인적인부분을 수정할 수 있는 창이 생긴다. x 와 y 값으로 오브젝트의 위치를 수정가능하기도 하고, 간편하게 마우스 드래그로 핸드폰 여기저기에 위치 배정이 가능하다. 그리고 실제 어플리케이션을 실행하기위해서는 앱 아이콘까지 제작을 해야 하는데, 간단하게 만들 수 있는 사이트를 알려주셔 만들어보았다. https://www.canva.com/ 실제로 아이폰..
2023.08.01 -
23.07.31 swift UIview & UIviewcontroller 기초 공부
우선 오늘 공부한 7개강의에서 마지막파트인 스크롤뷰와 스크롤줌의 코드이다. import UIKit class ViewController: UIViewController, UIScrollViewDelegate { var scrollView : UIScrollView! var imageView: UIImageView! override func viewDidLoad(){ super.viewDidLoad() scrollView = UIScrollView(frame: CGRect(origin: CGPoint(x: 0, y: 300), size: CGSize(width: view.bounds.width, height: 300))) scrollView.delegate = self let image = UIImage(..
2023.07.31 -
23.07.28 알고리즘 천국과 키오스크 코드수정 그리고 과제 최최최종본 제출
오늘 풀어본 알고리즘은 최댓값 만들기와 숫자찾기 그리고 캐릭터의 좌표이다. 물론 나는 아직 기본문법부터가 많이 모자란 상태이어서 내 혼자힘으로는 풀기 힘든것같다. 공부를 진행하면서 느끼는건 매번 벽에부딪히고 매번 박탈감이 들지만서도 애니캐릭터 빙의된 감정같은게 자꾸 든다 ( 애니 잘모름 ) 자 우선 최댓값 만들기 부터 보겠다 import Foundation func solution(_ numbers:[Int]) -> Int { var sorted = numbers.sorted() return sorted[numbers.count-2]*sorted[numbers.count-1] } 처음 이문제를 접했을때 복잡하게 생각하느라 바빴다 var 하나만들어서 거기에 array값으로 배열 만든다음에 그 배열을 for..
2023.07.29 -
23.07.26 알고리즘 문제풀이(몫 구하기, 배열 두배 만들기,) / 서브웨이 키오스크 (2)
알고리즘이라는것이 코딩에서 굉장히 중요한걸 알게되었다. 코드를 짜기위해서는 단순히 어떻게 짜세요 . 네 . 이러고 바로 짜지는게아니라 어떻게 어떻게 짜겠다는 계획과 기술적고민을 해야된다는걸 알아서 알고리즘에대한 문제풀이를 열심히 해보려고한다. ( 하루 5문제 목표 ) 프로그래머스라는 페이지의 알고리즘을 차례대로 풀어보았다. 먼저 몫 구하기 ( 거의 난이도 순으로 정렬 되어있음 ) 우선 func으로 함수 만들어주고 num1 이랑 num2 값 숫자로 받을거니 int로 형변환 ! num1 을 num2 로 나눌 거니까 num1/num2를 해줄거고 변하지 않는 수니 let answer로 객체지정해준다. 그다음 리턴값으로 answer를 주면 나눈값( ex 10을 5로 나누면 5가 두번들어가서 2 ) 이 출력된다...
2023.07.28 -
23.07.24 팀 프로젝트 - 쉑쉑버거 메뉴판 / 제품 구매 코드짜기
쉑쉑버거의 메뉴판을 만들고 , 제품을 구매하기위해 돈을 지불하며 금액이 차감되는 기능을 구현하였다. 처음엔 if 문을 사용하여 만약 1번을 누르면 > 1번메뉴로가고 그게아니라 2번을누르면 > 2번메뉴로가고 이런식으로 코드를짰었지만 뭔가 switch문이 더 범용성측면에서도좋고 나중을 생각해서도 좋을거라생각해서 전부다 갈아엎었다. 그러나 switch문을 사용하면서 if문에서는 안보였던 문제점이 보여 수정해야할것같다. let out = "프로그램을 종료합니다." print(menu) let menu = """ ================================================== 아래 메뉴판을 보시고 메뉴를 골라 입력해주세요. [ SHAKESHACK MENU ] 1. Burgers | 앵거..
2023.07.25 -
23.07.21 swift / 계산기에 대한 이해 / 호텔 프로그램 제작기(1)
저번 계산기코딩에서 상속을 통해 클래스를 나눠 각자의 역할을 분배하는것을 연습했었는데 , 여러곳에서 나의 코드를 설명들었지만 잘 이해가 되지 않았다. 결국 코드를 다시 구성하며 도움을 받아갔지만 잘 이해가 되지않았고 , 상속에 대해서는 이해가되었지만 내가 짠 코드가 너무 뒤죽박죽이라 이렇게가다간 머리가 터질것같아서 또 다른 과제인 호텔프로그램을 먼저 시도해보기로 하였다. 아래는 계산기 코드이다 👇 //class AbstractOperation{ // // func abstractOperation(number: Double, number2: Double) -> Double{ // // return 0 // // } //} class Caculator{ // switch 넣어 기능구현 let p : Plu..
2023.07.24 -
23.07.19 계산기 프로그래밍(3)
계산기만들기과제 레벨3을 진행하기위해선 상속의 개념에 대해 알아야할것같아 자료를 찾아보다보니 https://babbab2.tistory.com/17 Swift) Optional 부수기 (3) Optional Unwrapping - 옵셔널 바인딩(if let vs guard let) 안녕하세요 소들입니다 💀 (헬쓱) 퇴근 후 포스팅은 피곤하네여.. 요즘 회사 일은 Objective-C로 개발하고 포스팅 및 개인 프로젝트는 Swift로 하니까 혼돈의 카오스 옵젝씨 코드에 세미콜론 빼먹어 babbab2.tistory.com 이곳에서 아주 상세히 설명해주고있었다. 너무 잘 설명하고 정리해주시는 글인걸 보고 블로그를 정독하고있다 또 직접 ui/ux를 확인해가며 계산기를 만들 수 있는 좋은 영상을 찾아서 보면서 제..
2023.07.20