알고리즘(15)
-
[Swift - 프로그래머스] [카카오 인턴] 경주로 건설
🕵🏻 문제 해석 건설 회사의 회계사인 죠르디는 고객사로부터 경주로 건설 견적 의뢰를 받았습니다. 고객사로 받은 경주로 건설 부지의 정보는 N X N의 격자형태이며 중간중간 벽이 세워져 있는 부분은 1, 비어있는 부지는 0으로 구성되어있었습니다. 경주로의 시작점은 (0, 0) , 끝 점은 (N - 1, N - 1)이라고 할 때, 벽을 피해 상하좌우로 한 칸씩 도로를 연결 하여 경주로를 완성해야 합니다. 도로는 인접하고 있는 빈 부지 2개를 연결하여 만들고 코너를 만들 때는 500원, 직선도로를 만들 때는 100원이 사용됩니다. [제한 사항] board는 2차원 정사각 배열로 배열의 크기는 3 이상 25 이하입니다. board 배열의 각 원소의 값은 0 또는 1 입니다. 도면의 가장 왼쪽 상단 좌표는 (0,..
2021.05.31 -
[Swift - 프로그래머스] 신규 아이디 추천
🕵🏻 문제 해석 카카오 계정개발팀에 배치된 신입사원 네오가 카카오 서비스에 가입하는 유저들이 규칙에 맞지 않는 아이디를 입력하였을 때, 규칙에 맞춰 새로운 아이디를 추천하는 프로그램을 만드려고 합니다. 카카오 서비스 아이디 규칙은 다음과 같습니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. 이러한 규칙을 만족하지 않는 아이디는 총 7가지의 순차적인 단계를 거쳐 검사한 후 새로운 아이디를 추천해 줄 생각입니다. 모든 대문자를 대응되는 소문자로 치환합니다 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 ..
2021.05.31 -
[Swift - 프로그래머스] 순위 검색
🕵🏻 문제 해석 카카오의 하반기 경력 개발자 공개채용에서 지원자들의 지원서와 코딩테스트 점수를 이용하여 채용에 참여한 개발팀들의 문의 사항에 맞는 지원자들의 수를 제공하려고 합니다. 지원서 항목은 총 4가지, 개발언어, 지원 직군, 지원 경력, 선호하는 소울푸드로 구성되어있습니다. 따라서 지원서의 4가지 항목, 코딩테스트 점수 1가지, 총 5가지의 항목을 자료구조에 저장하고 문의 사항들을 탐색하며 각각 기준을 충족하는 지원자들의 수를 구하면 될 것 같습니다. 그렇게 하기위해 Key는 지원자가 충족하는 조건을 의미하는 String, Value는 해당 조건을 만족하는 지원자들의 점수 배열 [Int] 형태의 딕셔너리에 지원자들의 정보를 저장해보겠습니다. var dic: [String : [Int]] = [:]..
2021.05.29 -
[Swift - 프로그래머스] [3차] n진수 게임
🕵🏻 문제 해석 N진수 게임은 삼육구처럼 사람들이 돌아가며 숫자를 외치는 게임인데, 조금은 다르게 0부터 증가하는 숫자를 N진수로 변환하여 자신의 차례에 해당하는 숫자를 외치는 게임입니다. 정말 이런 게임을 하는 사람이 있을까요?.. 😨 무튼 n진법, 미리 자신의 차례에 외쳐야할 수들을 구해야 할 개수 t, 게임의 총 인원수 m, 그리고 자신의 차례 p가 주어지면, 자신의 차례에 맞는 t개의 수들을 미리 구해 공백이 없는 문자열로 리턴하는 문제였습니다. 스위프트에는 주어진 값을 임의의 진수로 변환해주는 간편하고도 강력한 String 생성자가 있습니다. 또한 16진법처럼 문자가 등장하는 경우에 uppercase 매개변수를 true로 해주면, 그 값을 대문자로 리턴합니다. 기본 값은 소문자로 false로 명..
2021.05.27 -
[Swift - 프로그래머스] [3차] 파일명 정렬
🕵🏻 문제 해석 파일 저장소 서버 관리를 맡게 된 무지가 기존에 이름 순으로 정렬된 파일들을 다시 보기 좋게 정렬하려고 합니다. 파일명은 크게 3 가지로 구성되는데 HEAD, NUMBER, TAIL입니다. 각각의 특징은 다음과 같습니다. 파일명에서 먼저 HEAD가 등장하며 그 이후 0에서 최대 99999까지의 NUMBER가 등장합니다. 이후 TAIL이 등장하지만 정렬기준에는 존재하지 않기 때문에 생각하지 않겠습니다. 정렬 우선순위는 다음과 같습니다. HEAD 기준으로 사전순으로 정렬한다. 이때 대소문자는 구별하지 않습니다. HEAD가 동일할 경우, NUMBER를 기준 오름차순 정렬합니다. HEAD와 NUMBER가 모두 동일하다면, 입력순서대로 정렬합니다. 따라서 파일명이 주어지면 HEAD와 NUMBER ..
2021.05.25 -
[Swift - 프로그래머스] 가장 큰 정사각형 찾기
🕵🏻 문제 해석 1과 0으로 채워진 표가 주어지면 그 표에서 1로 이루어진 가장 큰 정사각형의 넓이를 반환하는 문제입니다. 단, 정사각형은 축과 평행해야 합니다. 예시로 주어진 4 X 4의 표에서는 가장 큰 정사각형의 넓이가 9가 되겠습니다. 제한사항 표(board)는 2차원 배열로 주어집니다. 표(board)의 행(row)의 크기 : 1,000 이하의 자연수 표(board)의 열(column)의 크기 : 1,000 이하의 자연수 표(board)의 값은 1 또는 0으로만 이루어져 있습니다. 먼저 가장 작은 크기의 정사각형으로 부터 크기를 확장하며 문제에 접근해보겠습니다. 가장 작은 크기의 정사각형은 1 X 1 크기의 1로 이루어진 정사각형이겠죠? 그다음 크기의 정사각형은 2 X 2의 1로 이루어진 정사각..
2021.05.22