👨🏻💻iOS 공부/Swift_알고리즘 풀이
[프로그래머스] 프렌즈4블록
programmers.co.kr/learn/courses/30/lessons/17679?language=swift 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 딱 봤을 때, 2X2 애니팡 같은 느낌이다..! 2x2블록의 구성 요소들이 모두 같다면 터지고, 위에 원소들이 내려오는 형태이다. 여기서 보면 라이언으로 이루어져 있는 블록 2개, 콘 블록 1개가 지워지게 된다. 중간 블록들이 지워지게 되면서 위에 위치한 블록들은 자연스레 내려와줘야 한다. 여기서 한 번 더 검사를 해서 더 터..
[프로그래머스] 보석 쇼핑
programmers.co.kr/learn/courses/30/lessons/67258?language=swift 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 레벨 3에 해당하는 문제. 처음에는 그냥 시도해서 실패 > 투 포인터 개념 학습 후 도전 > 정확성은 다 맞으나 효율성 0점 > 문제의 원인? 배열! > 배열을 딕셔너리로 바꿔서 체크해줌 > 통과 자 이제 문제를 봐보자. 주어진 배열 내에서 유니크한 모든 원소들을 포함하는 구간을 만든다고 했을 때 가장 짧은 구간을 구하면 된다. 구할 때에 동일하게 짧은 구간이 있다면 시작 지점이 더 빠른 것을 반환..
[프로그래머스] 오픈채팅방
programmers.co.kr/learn/courses/30/lessons/42888?language=swift 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 오픈채팅방에서 입장/퇴장한 이름을 최종 이름으로 변경해주면 되는 문제 A가 들어왔습니다 B가 들어왔습니다 A가 나갔습니다. C가 들어왔습니다. (나갔던 A) 이 경우 위처럼이 아닌 C가 들어왔습니다 B가 들어왔습니다 C가 나갔습니다. C가 들어왔습니다. 처럼 보여져야한다. 또한 기존의 A,B가 닉네임을 중복으로 바꿔도 고유의 ID가 존재하기 때문에 ..
[프로그래머스] 수식 최대화
programmers.co.kr/learn/courses/30/lessons/67257?language=swift 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 연산자 우선순위를 조정하여 주어진 수식을 최대화하는 문제이다. 일반적인 연산의 경우 곱셉,나눗셈을 먼저 하나 여기서는 지정해주는 순서대로 무조건 연산해야한다. 즉 - > * > + 의 순서일 수도 있고, * > + > -의 순서일 수 있다. 그저 연산 결과가 최대의 값이면 되는 것이다. 우선 가능한 연산자의 순서를 모두 구해야한다. 재귀나 다른 방..
[프로그래머스] 뉴스 클러스터링
programmers.co.kr/learn/courses/30/lessons/17677?language=swift 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 문자열을 비교하고, 교집합/합집합 개념을 이용하는 문제! 예외 케이스들을 유의해서 작성해줘야한다. 합집합은 보통 A + B - (A와 B의 교집합)으로 구하게 되는데, A와 B가 아예 겹치지 않는 경우 등을 사전에 고려해야 한다. 문제의 예시를 보고 이해해보자. FRANCE와 FRENCH의 자카드 유사도를 구해주면 된다. (자카..
[프로그래머스] 괄호 변환
programmers.co.kr/learn/courses/30/lessons/60058?language=swift 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 괄호는 "(" 로 열리고 ")" 닫혀야 완전하다고 부른다. 이 개념을 이용해서 올바르지 않은 괄호 문자열을 올바른 괄호 문자열로 바꿔주는 로직을 짜보는 문제이다. pseudo code로 짜져있는 것을 보고 코드로 그대로 옮겨줘도 문제 없이 풀린다! 굳이 추가적인 생각을 하지 않고 풀어도 된다는 것. 근데 처음에는 그런거 모르고 헤맸다... // pse..