전체 글 78

[프로그래머스] 거리두기 확인하기 (Python) - 2021 카카오 채용연계형 인턴십 - 구현

1. 문제 설명 개발자를 희망하는 죠르디가 카카오에 면접을 보러 왔습니다. 코로나 바이러스 감염 예방을 위해 응시자들은 거리를 둬서 대기를 해야하는데 개발 직군 면접인 만큼 아래와 같은 규칙으로 대기실에 거리를 두고 앉도록 안내하고 있습니다. 대기실은 5개이며, 각 대기실은 5x5 크기입니다. 거리두기를 위하여 응시자들 끼리는 맨해튼 거리1가 2 이하로 앉지 말아 주세요. 단 응시자가 앉아있는 자리 사이가 파티션으로 막혀 있을 경우에는 허용합니다. 예를 들어, 5개의 대기실을 본 죠르디는 각 대기실에서 응시자들이 거리두기를 잘 기키고 있는지 알고 싶어졌습니다. 자리에 앉아있는 응시자들의 정보와 대기실 구조를 대기실별로 담은 2차원 문자열 배열 places가 매개변수로 주어집니다. 각 대기실별로 거리두기를..

Problem Solving 2021.07.12

[프로그래머스] 쿼드압축 후 개수 세기(Python) - 재귀

1. 문제 설명 0과 1로 이루어진 2n x 2n 크기의 2차원 정수 배열 arr이 있습니다. 당신은 이 arr을 쿼드 트리와 같은 방식으로 압축하고자 합니다. 구체적인 방식은 다음과 같습니다. 당신이 압축하고자 하는 특정 영역을 S라고 정의합니다. 만약 S 내부에 있는 모든 수가 같은 값이라면, S를 해당 수 하나로 압축시킵니다. 그렇지 않다면, S를 정확히 4개의 균일한 정사각형 영역(입출력 예를 참고해주시기 바랍니다.)으로 쪼갠 뒤, 각 정사각형 영역에 대해 같은 방식의 압축을 시도합니다. arr이 매개변수로 주어집니다. 위와 같은 방식으로 arr을 압축했을 때, 배열에 최종적으로 남는 0의 개수와 1의 개수를 배열에 담아서 return 하도록 solution 함수를 완성해주세요. 2. 제한사항 a..

Problem Solving 2021.03.30

Swift의 순환 참조 문제에 대해

예전에 있었던 면접에서 순환 참조가 잘 일어나는 상황에 대해 질문을 받은 적이 있다. 그 때 단순히 weak와 strong의 차이에 대해서만 줄줄이 읊은 기억이 있는데.. 정리를 좀 해야겠다 싶었다. 클래스 인스턴스 사이의 강력 순환 참조(Strong Reference Cycle) : 두 클래스 인스턴스가 서로 강력 참조를 쥐고 있다면, 각 인스턴스는 서로 살게 유지한다. ex) class Person { let name: String init(name: String) { self.name = name } var apartment: Apartment? deinit { println("\(name) is being deinitialized") } } class Apartment { let number: I..

[프로그래머스] 순위 검색 (python) - 2021 KAKAO BLIND RECRUITMENT - 해시, 이분탐색

1. 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 카카오는 하반기 경력 개발자 공개채용을 진행 중에 있으며 현재 지원서 접수와 코딩테스트가 종료되었습니다. 이번 채용에서 지원자는 지원서 작성 시 아래와 같이 4가지 항목을 반드시 선택하도록 하였습니다. 코딩테스트 참여 개발언어 항목에 cpp, java, python 중 하나를 선택해야 합니다. 지원 직군 항목에 backend와 frontend 중 하나를 선택해야 합니다. 지원 경력구분 항목에 junior와 senior 중 하나를 선택해야 합니다. 선호하는 소울푸드로 chicken과 pizza 중 하나를 선택해야 합니다. 인재영입팀에 근무하고 있는 니니즈는 코딩테스트 결과를 분석하여 채용에 참여한 개발팀들에 제공하기 위해 ..

Problem Solving 2021.03.02

[프로그래머스] 합승 택시 요금 (python) - 2021 KAKAO BLIND RECRUITMENT - 다익스트라

1. 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 밤늦게 귀가할 때 안전을 위해 항상 택시를 이용하던 무지는 최근 야근이 잦아져 택시를 더 많이 이용하게 되어 택시비를 아낄 수 있는 방법을 고민하고 있습니다. 무지는 자신이 택시를 이용할 때 동료인 어피치 역시 자신과 비슷한 방향으로 가는 택시를 종종 이용하는 것을 알게 되었습니다. 무지는 어피치와 귀가 방향이 비슷하여 택시 합승을 적절히 이용하면 택시요금을 얼마나 아낄 수 있을 지 계산해 보고 어피치에게 합승을 제안해 보려고 합니다. 위 예시 그림은 택시가 이동 가능한 반경에 있는 6개 지점 사이의 이동 가능한 택시노선과 예상요금을 보여주고 있습니다. 그림에서 A와 B 두 사람은 출발지점인 4번 지점에서 출발해서 택시를..

Problem Solving 2021.02.03

[프로그래머스] 메뉴 리뉴얼 (python) - 2021 KAKAO BLIND RECRUITMENT

1. 문제 설명 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 스카피는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로 구성하기로 했습니다. 단, 코스요리 메뉴는 최소 2가지 이상의 단품메뉴로 구성하려고 합니다. 또한, 최소 2명 이상의 손님으로부터 주문된 단품메뉴 조합에 대해서만 코스요리 메뉴 후보에 포함하기로 했습니다. 예를 들어, 손님 6명이 주문한 단품메뉴들의 조합이 다음과 같다면, (각 손님은 단품메뉴를 2개 이상 주문해야..

Problem Solving 2021.01.25

Git 기능 구현 작업을 잘못된 브랜치에서 했을때

부캠 5주 프로젝트를 진행하면서 정한 브랜치 전략은 다음과 같다. - Master: 당장이라도 배포가 가능한 브랜치. 목요일 저녁~ 금요일 오전에 Master 브랜치에 merge 한다 - Release: 이번 배포를 준비하는 브랜치. 목요일 저녁에 dev 브랜치에서 올리고, 급히 수정할 사항이 있다면 hotFix 브랜치를 생성 후 작업한다. - Develop: 이번 스프린트 동안 작업이 이루어지는 브랜치 - feature: 기능을 구현하는 브랜치 기본적으로 부스트 캠프의 레포지토리를 각자의 저장소로 fork 하고, clone 후 upstream 을 등록하여 작업을 하고 있다. upstream/dev 에 작업 내용이 업데이트 되면 각자의 origin/dev로 pull받아서 feature 브랜치에서 기능을 ..

github 2020.12.11

Core Animations 학습하기 - PieGraph

프로젝트 중 흥미롭게 학습한 부분이 있어 기록해보았다. 참고: https://www.tnoda.com/blog/2019-06-18/ 베지어 곡선이란? - n개의 점으로부터 얻어지는 n-1차 곡선 애플에서 제공하는 UIBezierPath를 활용하여 지출에 대한 파이차트를 그려보기로 하였다. 자판기 구현 프로젝트 때 활용했던 방법보다는, 애니메이션을 적용하여 active한 UI를 나타내보고자 한다. VC에서 animate 메소드 호출 override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) reportPieChartView.slices = setupSlices() reportPieChartView.animateChart() }..

👩🏻‍💻/iOS 2020.12.11

Swift Card Flip 애니메이션 구현하기

iOS 앱을 만들때, 애니메이션을 적용시키는 것이 생각보다 간단한 방법이길래 소개해본다. 1. Xcode - Single View App 프로젝트를 생성한다. 2. Asset 에 전환시킬 사진을 업로드한다. 3. Storyboard로 가서 이미지가 보여질 ImageView와 Button을 생성한다. 4. Contraints를 걸어준다. (시뮬레이터가 바뀌어도 View들을 고정시킬 수 있다.) 5. command+option+control+enter 키로 Assistant Editor를 켜고 control 을 누른 상태로 ImageView를 보조편집기로 끌어온다. 6. Button은 마우스 우클릭을 한 후 Touch Up Inside 를 끌어서 보조 편집기에 마찬가지로 추가한다. 7. ViewControl..

👩🏻‍💻/iOS 2020.09.12

[프로그래머스] 위장 - 해시 (Swift/Python)

1. 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 2. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다...

Problem Solving 2020.08.25