Algorithm
구현 - 왕실의 나이트(Swift)
본 내용은 '이것이 취업을 위한 코딩테스트다 with 파이썬' 책을 기반으로 포스팅 하였습니다 문제 저작권 문제가 될 수 있어 문제는 삭제합니다. 풀이 코드 let input = "a1" let startArr = input.map{String($0)} let moves = [[1,2],[-1,2],[1,-2],[-1,-2],[-2,-1],[-2,1],[2,-1],[2,1]] let chars = ["a","b","c","d","e","f","g","h"] let nums = [1,2,3,4,5,6,7,8] let c = nums.firstIndex(of: Int(startArr[1])!) let s = chars.firstIndex(of: startArr[0]) var count = 0 let star..
구현 - 시각(Swift)
본 내용은 '이것이 취업을 위한 코딩테스트다 with 파이썬' 책을 기반으로 포스팅 하였습니다. 문제 저작권 문제가 될 수 있어 문제는 삭제합니다. 풀이 코드 입력 출력 5 11475 for i in 0...n { for j in 0..
구현 - 상하좌우(Swift)
본 내용은 '이것이 취업을 위한 코딩테스트다 with 파이썬' 책을 기반으로 포스팅 하였습니다. 문제 저작권 문제가 될 수 있어 문제는 삭제합니다. 풀이 코드 입력 출력 5 R R R U D D 3 4 let n = 5 let move = ["R","R","R","U","D","D"] var map = Array(repeating: Array(repeating: [Int](), count:n) ,count:n) var start = [1,1] let dx = [0,0,-1,1] let dy = [-1,1,0,0] for i in 0..
구현 알고리즘
본 내용은 '이것이 취업을 위한 코딩테스트다 with 파이썬' 책을 기반으로 포스팅 하였습니다. 구현 알고리즘이란? 구현 알고리즘이란 '머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정' 이다. 구현 문제 구현 유형의 문제는 '풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제' 를 의미한다. 예시) 완전 탐색, 시뮬레이션 유형 완전 탐색 - 모든 경우의 수를 주저 없이 다 계산 하는 해결 방법 시뮬레이션 유형 - 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행해야 하는 문제 구현하기 어려운 문제 알고리즘은 간단하나 코드가 지나칠 만큼 길어지는 문제 특정 소수점 자리까지 출력해야하는 문제 문자열이 입력으로 주어졌을 때 한 문자 단위로 끊어서 리스트에 넣어야 하는 문제 등등 ※ 구현 문제를 ..
그리디 - 1이 될 때까지(Swift)
본 내용은 '이것이 취업을 위한 코딩테스트다 with 파이썬' 책을 기반으로 포스팅 하였습니다. 문제 저작권 문제가 될 수 있어 문제는 삭제합니다. 풀이코드 입력 출력 25 5 2 var n = 25 let k = 5 var count = 0 while true { if n % k != 0 { n = n - 1 count += 1 } else { n = n / k count += 1 } if n == 1 { break } } print(count) // 2 문제 풀이 1. n이 k의 배수가 될때까지 1씩 빼주면서 1씩 카운트 증가 2. n이 k의 배수라면 n을 k로 나눈 몫을 n에 넣어주고 카운트 증가 3. 위 과정을 반복하면서 n이 1이 되었을때 break로 while문 탈출 ※ 여기서 n을 k로 최대..
그리디 - 숫자 카드 게임(Swift)
본 내용은 '이것이 취업을 위한 코딩테스트다 with 파이썬' 책을 기반으로 포스팅 하였습니다. 문제 저작권 문제가 될 수 있어 문제는 삭제합니다. 풀이 코드 입력1 출력1 3 3 3 1 2 4 4 4 2 2 2 2 입력2 출력2 2 4 7 2 1 8 3 3 3 4 3 예시1) let arr = [[3,1,2],[4,1,4],[2,2,2]] let n = 3 let m = 3 var result = 0 for i in 0..
그리디 - 큰 수의 법칙(Swift)
본 내용은 '이것이 취업을 위한 코딩테스트다 with 파이썬' 책을 기반으로 포스팅 하였습니다. 문제 저작권 문제가 될 수 있어 문제는 삭제합니다. 풀이 코드 입력 출력 5 8 3 2 4 5 4 6 46 예시 1) let arr = [2,4,5,4,6].sorted() let n = 5 // 배열의 크기 let m = 8 // 최대 반복 횟수 let k = 3 // 연속으로 더할수 있는 횟수 let first = arr[n - 1] // 제일 큰 수 let second = arr[n - 2] // 그다음 큰 수 var result = 0 var count = 0 for i in 1...m { if count == k { result += second count = 0 } else { result += f..
그리디 - 거스름돈(Swift)
본 내용은 '이것이 취업을 위한 코딩테스트다 with 파이썬' 책을 기반으로 포스팅 하였습니다. 문제 저작권 문제가 될수 있어 문제는 삭제합니다. 풀이 코드 let coins = [500,100,50,10] var n = 1260 var count = 0 for coin in coins { while n >= coin { count += 1 n = n - coin } } print(count) // 6 문제 풀이 1. 거스름돈으로 사용할 동전마다 반복 -. 500원, 100원, 50원, 10원 2. 거슬러주고 남은 돈(n)이 거스름돈(coin)보다 작을때까지 반복 (거슬러주고 남은돈이 거스름돈보다 크다면 while문 계속 실행) - 500원일때 1. 1260 - 500 = 760 2. 760 - 500 ..