전체 글 78

[프로그래머스] - 순위 [파이썬][플로이드 와셜]

문제를 보고 고민하다가 뭔가 순환이 없기도 하고, 방향을 뚜렷하고, 가중치도 없겠다해서 위상정렬로 풀려고 했지만, 어디서 핀트가 나간건지 끝내 못풀고 결국 플로이드 와셜을 사용해야 한다는 힌트를 얻은 문제 https://school.programmers.co.kr/learn/courses/30/lessons/49191#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수..

알고리즘 2023.03.06

[프로그래머스] - 외벽점검 (파이썬)

완전탐색(순열) https://school.programmers.co.kr/learn/courses/30/lessons/60062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 도중에 주기적으로 외벽의 상태를 점검해야 할 필요가 있습니다. 레스토랑의 구조는 완전히 동그란 모양이고 외벽의 총 둘레는 n미터이며, 외벽의 몇몇 지점은 추위가 심할 경우 손상될 수도 있..

알고리즘 2023.02.21

[프로그래머스] 징검다리 건너기 (슬라이딩 윈도우)

heapq가 떠오르긴 했는데 구체적인 방법이 끝내 안떨올랐음 https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 초등학교의 "니니즈 친구들"이 "라이언" 선생님과 함께 가을 소풍을 가는 중에 징검다리가 있는 개울을 만나서 건너편으로 건너려고 합니다. "라이언" 선생님은 "니니즈 친구들"이 무사히 징검다리를 건널 수 있도록 다음과 같이 규칙을 만들었습니다. 징검다리는 일렬로 놓여 있고 각 징검다리의 디딤돌에는 모두 숫자가 적혀 있으며 디딤돌의..

알고리즘 2023.02.20

[프로그래머스] - 보석 쇼핑(파이썬)

알고리즘이 생각이 안나 힌트에서 어떤 알고리즘 써야되는지 확인함 https://school.programmers.co.kr/learn/courses/30/lessons/67258 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 진열대 번호 순서대로 보석들의 이름이 저장된 배열 gems가 매개변수로 주어집니다. 이때 모든 보석을 하나 이상 포함하는 가장 짧은 구간을 찾아서 return 하도록 solution 함수를 완성해주세요. 가장 짧은 구간의 시작 진열대 번호와 끝 진열대 번호를 차례대로 배열에 담아서 return 하도록 하며, 만약 가장 짧은 구간이 여..

알고리즘 2023.02.19

[프로그래머스] - 스타 수열 (파이썬)

결국 못 풀었던 문제, 감도 잘 못잡음 https://school.programmers.co.kr/learn/courses/30/lessons/70130 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다음과 같은 것들을 정의합니다. 어떤 수열 x의 부분 수열(Subsequence)이란, x의 몇몇 원소들을 제거하거나 그러지 않고 남은 원소들이 원래 순서를 유지하여 얻을 수 있는 새로운 수열을 말합니다. 예를 들어, [1,3]은 [1,2,3,4,5]의 부분수열입니다. 원래 수열에서 2, 4, 5를 제거해서 얻을 수 있기 때문입니다. 다음과 같은 조건을 모두..

알고리즘 2023.02.17

Tuist(3) - 환경변수

기능적인 부분들은 전글에서 다 끝마쳤다. 이번글에서는 약간 감초가 같은 것들만 다룰 것이다. 4. 환경 변수를 이용하여 generate하는 방법 여태까지 진행한 단계에서 살짝 아쉬운 감이 있다. 바로 tuist generate를 사용했을때 무조건 Demo들도 같이 빌드 된다는 것이다. Demo앱들은 사실상 개발할때만 필요한 것이기 때문에 배포하려고 할때는 굳이 빌드를 할 필요가 없다. 우리는 이 과정을 위하여 환경 변수를 사용할 것이다. Tuist는 terminal에서 환경변수를 써서 이를 Project.swift에서 사용할 수 있게 되어 있습니다. 환경변수는 TUIST_[이름] 형태로 쓰면 Tuist가 읽을 수 있습니다. 따라서 generate할 당시에 배포를 위한 빌드냐 개발을 위한 빌드냐를 환경변수..

iOS 2023.02.13

Tuist(2) - 기존 프로젝트에 도입하기

전글에서는 Tuist 설치 및 시행방법 그리고 기본적인 Tuist의 구조에 대해서 알아 보았다. 이번글부터는 본격적으로 어떻게 기존 프로젝트에 Tuist를 도입하는지에 대해 글을 써볼 것이다. 3.Tuist Edit 3-1. 현재 프로젝트에 맞게 Tuist 디렉토리 생성하기 본격적으로 Project.swift 파일과 Project+Templates.swift 파일을 추가, 수정 하며 우리가 원하는 프로젝트의 형태로 만들어나갈 것이다. 그전에 일단 불필요한 파일들을 지워서 다음과 같이 만들어놓자. 안에 있는 Config.swift와 Project+Template.swift은 파일을 냅두고 코드들만 싹다 지워놓으면 된다. 그리고 다시 우리가 원하는 최종 형태의 구성물을 확인해보자. 우리의 최종적인 형태는 a..

iOS 2023.02.13

TUIST(1) - 설치,실행,기본구조

예전 회사에 있을때 부터 앱이 커짐에 따라 모듈화의 필요성을 느끼기는 했었다. 내부 서비스인 "Inpose" IOS의 앱의 규모는 cocoapod 제외하고 총 888개의 파일과 147,566의 line수를 가지고 있다. 작성한 프로젝트의 총 라인수는 다음과 같이 구할 수 있다. 터미널로 원하는 프로젝트로 이동하여 다음 명령어를 실행하면 알 수 있다. find . \( -iname \*.swift \) -exec wc -l '{}' \+ 프로젝트가 이것 하나만 있는 것이 아닌 외주로 받고 지속적으로 관리해준 앱 중에서도 이와 같은 규모를 가진것이 2 ~ 3 개 정도 있었다. 이런 프로젝트들은 특성상 개발하는 와중에 요구사항과 디자인이 많이 바뀌기도 하고 출시한 후에도 전면 리뉴얼을 할 만큼 수정사항이 많았..

iOS 2023.02.12

[프로그래머스] 카드 짝 맞추기

이 문제는 힌트를 얻고 나서 푼 문제 https://school.programmers.co.kr/learn/courses/30/lessons/72415 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제는 4x4 격자에서 같은 그림의 카드를 뒤집는 최소 횟수를 구하는 문제이다. 문제를 보자마자 4x4 격자의 크기, 최소 횟수 구하는 문제로 완전탐색을 해야하고 bfs와 dfs를 모두 사용해야 되겠다는 것은 알았다. bfs는 최단거리 dfs는 어떤 카드를 먼저 뒤집느냐에 따라서 결과가 달라지기에 필요하다. 하지만 일반적인 bfs와 다르게 ctrl + 방향키가..

알고리즘 2023.02.09

MVVM(6) - ViewModel

5. ViewModel Class? or Struct? MVVM에서 가장 중요시 되는 ViewModel에 대해서 이야기를 해볼까 합니다. MVVM자체가 개념만 있는 상황이다 보니 각 단체에 따라서 ViewModel을 구성하는 방법이 다릅니다. 이 와중에 가장 첫번째로 대두 되는 고민은 ViewModel은 Struct이냐? Class?이냐 일거 같아요. 그럼 어떤것이 더 ViewModel에 어울리냐에 먼저 Struct와 Class가 어떻게 다른지 간략하게 짚어보고 넘어가겠습니다. 5-1.Struct vs Class 애플 개발자들 사이에 "Struct가 Class보다 더 좋다!"라는 이야기가 가끔 나옵니다. 그 이유는 애플 공식 문서에 보면 다음과 같은 말이 나오기 때문입니다. 번역하면 "기본적으로 Stru..

iOS 2023.01.13