2021/04

    [프로그래머스] 괄호 변환

    programmers.co.kr/learn/courses/30/lessons/60058?language=swift 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 괄호는 "(" 로 열리고 ")" 닫혀야 완전하다고 부른다. 이 개념을 이용해서 올바르지 않은 괄호 문자열을 올바른 괄호 문자열로 바꿔주는 로직을 짜보는 문제이다. pseudo code로 짜져있는 것을 보고 코드로 그대로 옮겨줘도 문제 없이 풀린다! 굳이 추가적인 생각을 하지 않고 풀어도 된다는 것. 근데 처음에는 그런거 모르고 헤맸다... // pse..

    [프로그래머스] 비밀지도

    programmers.co.kr/learn/courses/30/lessons/17681?language=swift 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 지도1과(배열) 지도2(배열) 두 개를 조건에 따라 합친 결과를 나타내주면 된다. 다만 배열의 원소가 Int로 주어지는데 2진법으로 바꾸어 표기해야한다. * 이번에 String(숫자, radix:2)를 하면 2진법 표현으로 바꿔 보여주는 걸 처음 알았다....! 하나라도 #이면 #으로 표기 둘 다 빈칸이어야 빈칸으로 표기되는 조건이다. 크게 ..

    [프로그래머스] 다트

    programmers.co.kr/learn/courses/30/lessons/17682?language=swift 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 다트를 총 3번 던져서 얻는 총 점수를 계산하는 문제, 단 한 판에 "점수 | 보너스 | 옵션"이 존재할 수 있다. 모두 문자열로 오는 정보이기에 알맞게 split하는게 우선일 것 이다. 1. 판 별로 문자열 나누기 2. 판 별 점수 계산 3. 총합내기 바로 코드로! func solution(_ dartResult:String) -> Int { var totalScore = [Int]() var curScore = Array(repeating: "", count: 3) var idx = 0 let options = ["*..

    [프로그래머스] 실패율

    programmers.co.kr/learn/courses/30/lessons/42889?language=swift 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 실패율 = 스테이지에 도달했으나 클리어 하지 못한 유저 수 / 스테이지 도달한 유저 수 위 공식을 기반으로 실패율을 내림차순으로 정렬해주면 되는 문제이다. stages의 원소가 1이라면 1단계에 진입했으나 아직 클리어하지 못했다는 것을 의미한다. 즉, n단계를 통과하지 못한 원소의 값은 n이 되는 것이다. (도달은 해야하기에 n 미만은 포함 X) 바..

    [프로그래머스] 가장 먼 노드 (with BFS)

    programmers.co.kr/learn/courses/30/lessons/49189?language=swift 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 문제 제목 그대로 1번 노드에서 가장 먼 노드를 구하는 문제! 바로 문제의 예시를 봐보자. 음.... 그래프를 보니 최근에 배웠던 플로이드-와샬을 써보고 싶어진다.. 그래서 써봤다.. 당연히 시간초과.. 문제의 "제한사항"을 잘 봐야한다! 노드의 개수 n은 2 이상, 20,000 이하입니다. 플로이드-와샬의 시간 복잡도는 $O(n^3)$ 이었으니까... 딱 봐도 안된다.. 이렇게 "간선"에 가중치가 없고 양방향인 경우에..

    [프로그래머스] 문자열 압축

    programmers.co.kr/learn/courses/30/lessons/60057?language=swift 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문자열을 최소한으로 압축시킬 수 있을 때 까지 압축시켜보고 그 길이를 반환하는 문제. 예를 들어 "aabbccd"의 경우 아래와 같은 과정을 거쳐 답을 얻어낼 수 있다. // string = "aabbccd" # 1개씩 자를 때 // a a b b c c d // a가 2개, b가 2개, c가 2개, d가 1개로 묶인다 // (1은 표기 X)..