앱등개발자IOS

고정 헤더 영역

글 제목

메뉴 레이어

앱등개발자IOS

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (280)
    • 포트폴리오 (0)
    • C알고리즘 (43)
    • Python알고리즘 (57)
    • Swift알고리즘 (132)
    • IOS (3)
    • Swift언어 (9)
    • Lua 언어 (2)
    • Objective-C 언어 (1)
    • Kotlin언어 (0)
    • rxSwift (1)
    • Swift 지식(CS) (1)
    • Swift for Coding Interview (4)
    • Clean Software Architecture (0)
    • Design Pattern with Java & .. (3)
    • ML&DL (7)
    • 데이터베이스(DB) System Concepts (3)

검색 레이어

앱등개발자IOS

검색 영역

컨텐츠 검색

전체 글

  • 백준 1012: 유기농 배추 (Swift) - feat. inout & call by reference

    2022.05.24 by 앱등개발자IOS

  • 백준 9095: 1, 2, 3 더하기 (Swift)

    2022.05.24 by 앱등개발자IOS

  • 백준 11657: 타임머신 (Swift)

    2022.05.24 by 앱등개발자IOS

  • 백준 15652: N과 M (4) (Swift)

    2022.05.24 by 앱등개발자IOS

  • 백준 15651: N과 M (3) (Swift)

    2022.05.24 by 앱등개발자IOS

  • 백준 15650: N과 M (2) (Swift)

    2022.05.24 by 앱등개발자IOS

  • Swift언어 복습노트2 - 컬렉션 타입과 연산자

    2022.05.23 by 앱등개발자IOS

  • 백준 2252: 줄 세우기 (Swift)

    2022.05.23 by 앱등개발자IOS

백준 1012: 유기농 배추 (Swift) - feat. inout & call by reference

이제 알고리즘 별 기본 문제들을 Swift로 한 문제씩 풀고난 후, 랜덤하게 문제들을 풀이하게 되었고, 그 첫 관문을 1012번 유기농배추가 열어주었다. 간단한 BFS문제로 알았으나, Python에 익숙한 나머지 Array를 call by reference로 함수에 전달하는 것을 당연하게 생각하고 작성했으나, 런타임 에러가 뜨고 말았다. 매개변수로 전달한 Array를 함수 내부에서 변경을 했더니, 해당 줄에 오류가 뜨며 "let constant이므로 변경할 수 없다"라는 문구가 떴다.. 몇개월 전에 풀이했던 코드가 있어 확인해보니, inout이라는 키워드가 다시금 생각났다. Swift에서는 call by value가 기본이고, call by reference로 함수의 매개변수에 Array를 전달하려면 c..

카테고리 없음 2022. 5. 24. 20:04

백준 9095: 1, 2, 3 더하기 (Swift)

정수 n이 주어졌을 때, 이를 1,2,3의 합으로 나타내는 경우의 수를 알아내야하는 문제이다. dp로 접근하여 간단하게 풀 수 있는 문제이다. 특히나, 11보다 작은 n만 주어진다고 하였으니, dp의 길이를 11 ( 0번 인덱스 ~ 10번 인덱스)로 잡으면 될 것이다. 먼저 n으로 1,2,3이 주어졌을 때의 경우의 수를 작성해놓고, dp를 위한 반복문을 시작한다. dp는 항상 이전의 정보들을 사용한다. 그 과정에 겹치는 것이 없도록 자신만의 기준을 세우는 것이 중요하다. dp[4]는 어떻게 구할까? #dp[1]의 경우에서 출발해보자. (n)이라는 것은 n길이를 만들 수 있는 모든 경우의 수, 어떤 경우든 상관 없이 모두 적용된다는 뜻이다. 먼저 dp[1]이니 (1)은 만들어져있을 것이다. 우리는 3을 더..

Swift알고리즘 2022. 5. 24. 19:24

백준 11657: 타임머신 (Swift)

시작점으로부터 모든 지점까지의 "최단거리"를 구해야하는 "다익스트라" !!! 가 아닌 "벨만-포드" 알고리즘을 사용하는 기본 문제입니다... 그 이유는 간선에 "음수"가 포함되어있기 때문인데요, 코테에 나오는 알고리즘을 암기하면서 벨만포드는 참 외우기 어려웠습니다.. ( 이유는 잘 모르겠네요.. ) - 자세히 보면 INF를 이용해 1차원 distance배열을 두고 시작하는 것, - 함수의 첫 줄에서 시작점의 distance[start] = 0으로 초기화하는 것 이 두가지는 다익스트라를 구현할 때와 완전히 똑같습니다! 한가지 큰 차이점은 -다익스트라는 보통 "인접 리스트"에 각 node에서 갈 수 있는 node번호를 모아놓는 , "그래프"가 주인공인 알고리즘 이라면, - 벨만-포드는 아래 코드의 7번 줄과..

Swift알고리즘 2022. 5. 24. 18:27

백준 15652: N과 M (4) (Swift)

순열과 조합 4탄! 중복조합 문제입니다. 경우의 수가 중복순열만큼은 아니라서 그런지 매 result마다 print를 해주어도 시간초과는 나지 않네요.. 이전에 어떤 자연수까지 result에 포함되었는지를 begin 파라미터로 전달하여, begin부터 마지막 자연수(n)까지 ( 중복이 가능하니까! ) 다시 for문을 돌리며 다음 자리에 채워나가는 식으로 구현하였습니다.

Swift알고리즘 2022. 5. 24. 18:02

백준 15651: N과 M (3) (Swift)

순열과 조합 시리즈 3탄! 중복 순열로, 사실상 n개의 자연수를 m개의 자리에 한 번씩 다~ 넣어서 총 n x m개의 중복순열을 다 출력해주어야하는 문제이다. 아래와 같이 Python에서 작성하던 알고리즘 그대로 Swift로 언어만 바꾸어 구현했고, 제출을 했더니 "시간초과"가 떴다... 입출력에서 시간이 너무 많이 걸리나 싶어 아래와 같이 바꾸어 제출해보았다. 하나 이 문제를 풀며 알게 된 꿀팁은 Int를 String으로 형변환 할 때에는 Optional타입이 아니라 String타입이 쌩(?)으로 return된다. 하지만, String타입을 Int타입으로 형변환하면, Optional타입이 return된다! + 배열에 담긴 String들을 joined()함수로 문자열로 이어붙일 수 있다. 수정하여 시간까..

카테고리 없음 2022. 5. 24. 17:55

백준 15650: N과 M (2) (Swift)

순열과 조합!! 시리즈 중 2번째 문제이다. 이 문제는 조합! 즉 combinations를 구현하면 되는 문제이다. 순열은 1 3 2, 1 2 3 을 다른 것으로 count하지만, 조합은 이 둘 뿐 아니라 1 2 3, 1 3 2, 3 2 1, 3 1 2, 2 1 3, 2 3 1 여섯가지 모두를 같은 것으로 봐야한다. 해결법은 간단하다 "오름차순"으로 뽑기만 하면 이 모든게 "하나"로 count된다! 따라서, data배열의 앞쪽부터 차례로 지나가며, 지나온 곳은 더 result에 넣지 않는 방식으로 오름차순 result만들 만들어 print해주면 된다!

Swift알고리즘 2022. 5. 24. 17:25

Swift언어 복습노트2 - 컬렉션 타입과 연산자

# Swift의 컬렉션형 -많은 데이터를 묶어 저장,관리하는 타입 - 아래 컬렉션 형 모두 let으로 선언 시 변경 불가, var -> 변경 가능 - 아래 컬렉션 형 모두 isEmpty프로퍼티, count프로퍼티 사용 가능! #컬렉션형 요약 Dictionary와 Set은 삭제시, 값을 반환해준다. key혹은 해당 원소가 없어도 오류 없이 nil을 반환. 즉, 값이 있어도 Optional타입으로 리턴! 추가 삭제 조회 배열 arr.append("원소") arr.removeFirst(), arr.removeLast() arr[1], arr[2].. 딕셔너리 dict["key"] = "원소 dict.removeValue(forKey:"key") (없으면 nil을 반환할 뿐 오류 X ) dict["key"] (..

Swift언어 2022. 5. 23. 12:59

백준 2252: 줄 세우기 (Swift)

위상정렬의 기본 문제! 위상정렬은 기본적으로 deque을 이용한다. First-In-First-Out 파이썬에서는 from collections import deque를 통해 가져온 deque로 append, popleft()를 사용할 수 있었으나, Swift에서는 기본적으로 제공해주는 deque가 없기 때문에, Array에 원소들을 넣으며, 현재 popleft하고( 했다 치고 ..) 맨 아래 바닥에 있는 원소가 누구인지 가리키는 idx 변수를 사용한다. while 문 종료조건은 Array.count > idx가 깨지는 순간이다! Array의 count는 1에서, idx는 0에서 시작하므로, 새로 q에 들어온 원소의 수가 pop 한 원소 수보다 크거나 같으면 while문은 계속 돌아가게 된다!! ( py..

Swift알고리즘 2022. 5. 23. 11:51

추가 정보

인기글

최신글

페이징

이전
1 ··· 30 31 32 33 34 35
다음
TISTORY
앱등개발자IOS © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바