Dictionary를 이용하는 문제. 처음에는 경우의 수를 생각해 반복문으로 풀으려고 했으나 그렇게 할 필요가 없이 각 종류별 옷의 수량+1을 곱한 수 마지막에 -1을 빼면 된다. Dictionary는 키값이 옷의 종류이고 value가 종류의 개수다. func solution(_ clothes:[[String]]) -> Int { var count = 1 var clothDic : [String : Int] = [:] for item in clothes { if clothDic.contains(where: { (key: String, value: Int) in return key == item[1] }){ clothDic[item[1]] = clothDic[item[1]]!+1 }else{ clothDi..
프로그래머스 2단계 문제. 생각보다 어렵지는 않다. hash대신에 Dictionary를 사용해 풀었다. phone_book를 정리한 후 Dictionary에 삽입 후 순서대로 비교한다. 단 해당 번호는 Dictionary에서 삭제해야한다. 안그러면 무조건 false가 나온다. import Foundation extension String{ func starstWith(var input : String)->Bool{ if self == input.prefix(self.count) { return true } return false } } func solution(phone_book : [String])->Bool{ var answer = true var list = phone_book.sorted() va..
swift에서는 자바처럼 startsWith를 지원하지 않는다. 따라서 메소르를 만들거나 확장을 통해서 구현해야 한다. String의 확장을 이용해 구현하였다. 여기서 prefix는 해당 문자열을 처음에서 입력한 수까지를 리턴 한다. 즉 abcdef라는 문자열이 있을때 prefix(3)이라 하면 abc를 리턴하게 된다. 이를 이용해 입력된 문자열과 비교를 하게 해 구현을 하였다. extension String{ func startsWith(var input : String)->Bool{ if self == input.prefix(self.count) { return true } return false } }
https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 재귀를 이용한 피보나치의 수. 딱히 설명할 것도 없는듯하다. import Foundation func fibo(n : Int)->Int{ if n == 1 { return 1 } else if n == 0{ return 0 }else{ return fibo(n: n-1) + fibo(n: n-2) } } print(fibo(n: 10))
코딩테스트 고득점Kit부터 풀어보라 추천을 해줘서 이것부터 풀기로 했다. Hash문제에서 가장 첫번째 문제. 마라톤 참가 선수 배열과 완주선수 배열이 주어지고, 완주하지 못한 선수 이름을 반환하는 문제이다. 그저 마라톤 참가 선수 배열과 완주 선수 배열을 비교해 완주배열에 없는 이름을 리턴하면 된다. 여태까지 Hash를 써본적이 거의 없는데 이번 단계를 통해 확실히 알아두어야 할 듯 하다. Java import java.util.HashMap; public class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; HashMap hm = new HashMap(); for (St..