본문 바로가기

Algorithm

(8)
Algorithm(Swift) - 숫자 문자열과 영단어 프로그래머스 2021 카카오 채용연계형 인턴십에 있는 숫자 문자열과 영단어 문제입니다. 문제를 읽어보고 단순하게 생각하면 쉽게 풀수 있습니다.문제를 풀다보니 두가지 방안이 나와서 두개다 올립니다. 1. 첫번째 방법 func solution(_ s:String) -> Int { var resultArray = Array() var input = s let enDic : [String : String] = [ "zero" : "0", "one" : "1", "two" : "2", "three" : "3", "four" : "4", "five" : "5", "six" : "6", "seven" : "7", "eight" : "8", "nine" : "9" ] while input.count != 0 { enD..
Algorithm(Swift) - 신규 아이디 추천 프로그래머스 2021 KAKAO BLIND RECRUITMENT 신규 아이디 추천 문제입니다. 해당 문제 같은경우는 어떻게보면 7가지 스텝으로 나뉘어져 있기때문에해당 스텝에 맞춰서 해결해 나가면 편합니다. 문제 키포인트 입니다. 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. 6단계 new_id의 길이가 16자 이상이면, new..
Algorithm(Swift) - 부족한 금액 계산하기 프로그래머스 위클리 챌린지 1주차에 있는 부족한 금액 계산하기 문제입니다. 입출력 설명상에서 이용금액이 3인 놀이기구를 4번 타고 싶은 고객이 현재 가진 금액이 20이라면, 총 필요한 놀이기구의 이용 금액은 30 (= 3+6+9+12) 이 되어 10만큼 부족하므로 10을 return 합니다. 다음과 같은 예시를 보여주고있기때문에 카운트만큼 반복하는 수를 만들고 반복할때마다 price 값과 곱하여 그 값은 누적합니다. 누적한 금액과 필요한 금액을 빼서 최종 금액을 양수를 위해서 -1을 곱해줘서 리턴 합니다. func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{ let array = Array(1...count) let worldPrice = arr..
Algorithm(Swift) - H-Index 프로그래머스 정렬에 있는 H-Index 입니다. 프로그래머스 상에 있는 키포인트를 읽을려고 했으나..... 도저히 이해를 못한탓에 다른 사이트에서 찾아 이해했습니다. https://www.ibric.org/myboard/read.php?Board=news&id=270333 [연구논문을 위한 핵심 10단계] H-지수(H-Index) 란 무엇인가? 일반적으로 특정 연구원의 연구성과를 평가하기 위해 얼마나 많은 논문을 발표 하였는지를 보게됩니다. 그러나 단순히 발표한 논문 수로만 그 연구원의 연구 업적을 평가 하기에는 발표한 논문 www.ibric.org 피인용수가 논문수와 같아지거나 피인용수가 논문수보다 작아지기 시작하는 숫자가 바로 나의 h가 됩니다 인덱스를 1부터 시작하고 인용수와 비교하여 총 인덱스보다..
Algorithm(Swift) - 가장 큰 수 프로그래머스 정렬에 있는 가장 큰 수 입니다. 해당 문제의 키포인트 입니다. [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210 입니다. 배열에대해 첫번째 값과 두번째 값을 비교했을때 더 큰값에 대해 정렬한다 ex) 0과 6 값이 있다면 06 와 60 비교하여 정렬한다. 최종적으로 정렬한값은 String으로 변환한후 배열이 아닌 값으로 리턴한다. 정렬한 값의 첫번째값이 0 일경우 나머지 값도 다 0이기때문에 0 으로 리턴한다 -> 0000 으로할경우 답이 아님. import Foundation func solution(_ numbers:[Int]) -> String { let sorted = numbers.sorted {..
Algorithm(Swift) - 모의고사 프로그래머스 완전 탐색에 있는 모의고사 문제입니다. 해당 문제의 키포인트 입니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 결국 수포자의 방식은 각각의 반복 형식으로 이루어져 있습니다. 입력값의 필터를 걸어 해당값과 수포자의 정답값을 비교합니다. 시험은 최대 10,000 문제까지 제공되지만 배열을 그만큼 초기화 할수는 없기에 나머지값을 줘서 계속 반복적이게 형식에 맞춰 비교를 할수 있게 합니다. 1,2..
Algorithm(Swift) - K번째수 프로그래머스에 있는 정렬에 있는 K번째수 문제 입니다. 소스를 먼저 첨부하고 분석 해보도록 하겠습니다. func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] { var resultArray : [Int] = [] for i in 0..
Algorithm(Swift) - 두 개 뽑아서 더하기 프로그래머스에 있는 월간 코드 챌린지 시즌1에 있는 두개 뽑아서 더하기 문제 입니다. 두개의 수를 뽑아야 하기때문에 첫번째 값하고 두번째 값을 비교하는 형식으로 for문을 돌렸습니다. 각각 두개의 값을 뽑은다음에 합계를 배열에 저장하고 출력할경우 다음과 같이 나옵니다. func solution(_ numbers:[Int]) -> [Int] { var result : [Int] = [] for i in 0..