프로그래머스 - 크레인 인형뽑기 게임 (2019 카카오 개발자 겨울 인턴 문제)
·
Algorithm/programmers
다차원 배열 문제를 해결할 때 주의할 점은 배열이 어떻게 구성되어야 하는지 유심히 봐야합니다   다음과 같이 주어진 다차원 배열은 문제를 쉽게 해결하기 위해 배열 재구성을 해야할 필요가 있습니다.[1, 0, 0, 0, 0],[2, 0, 0, 0, 0],[2, 0, 0, 0, 0],[1, 0, 0, 0, 0],[3, 0, 0, 0, 0]] 1 번째 칸에는 [1, 2, 2, 1, 3] 인형들이 들어있습니다.이때 [1, 1, 1, 1] 으로 인형을 뽑게 된다면 1번 칸에 인형들을 4번 뽑아야 하기 때문에 다음과 같이 배열을 재구성시키면 해결하기 쉬워집니다.1번째 배열: [1, 2, 2, 1, 3]2번째 배열: [0, 0, 0, 0, 0]3번째 배열: [0, 0, 0, 0, 0]4번째 배열: [0, 0, 0, ..
프로그래머스 - 숫자 문자열과 영단어 (2021 카카오 채용연계형 인턴쉽)
·
Algorithm/programmers
import Foundationfunc solution(_ s:String) -> Int { return Int(s .replacingOccurrences(of: "zero", with: "0") .replacingOccurrences(of: "one", with: "1") .replacingOccurrences(of: "two", with: "2") .replacingOccurrences(of: "three", with: "3") .replacingOccurrences(of: "four", with: "4") .replacingOccurrences(of: "five", with: "5") .replacingOc..
프로그래머스 - 성격 유형 검사하기 (카카오 인턴쉽)
·
Algorithm/programmers
이 문제처럼 특정 값을 가지고 점수를 구한다던지 결과값을 구하는 상황에 있어서는 배열을 만들어 배열의 인덱스로 해당 값을 활용하는 것이 효과적입니다. 다음처럼 특정 값 예를들어 R 의 값을 증가시키고 싶다면 다음과 같이 접근할 수 있겠습니다.Character 타입의 배열을 만들어 각각의 성격 유형들을 담습니다각각의 성격 유형들의 점수를 firstIndex 를 활용하여 인덱스를 추출하여 해당 Int 배열의 값을 증가시킵니다.let info: [Character] = ["R", "T", "C", "F", "J", "M", "A", "N"]var list: [Int] = .init(repeating: 0, count: 8)list[info.firstIndex(of: value.first!)!] += 3  im..
프로그래머스 - 키패드 누르기 (2022 카카오 인턴)
·
Algorithm/programmers
좌표를 다룰 때에는 좌표 열과 행을 신경써서 해결해야 합니다 초기 문제를 해결하기 못했던 잘못된 좌표값var buttons: [(Int,Int)] = [(1,3), (0,0), (0,1), (0,2), (1,0), (1,1), (1,2), (2,0), (2,1), (2,2)] 이후 좌표값을 제대로 수정하여 해결된 코드import Foundationfunc solution(_ numbers:[Int], _ hand:String) -> String { let h = hand.first!.uppercased() var left = (0,3) var right = (2,3) var result: [String] = [] var buttons: [(Int,Int)] = [(1,3), (..
프로그래머스 - 두 개 뽑아서 더하기
·
Algorithm/programmers
import Foundationfunc solution(_ numbers:[Int]) -> [Int] { var result: Set = [] for i in 0..
프로그래머스 - 3진법 뒤집기
·
Algorithm/programmers
import Foundationfunc solution(_ n: Int) -> Int { var tmp = n var list: [String] = [] while tmp > 0 { list.append(String(tmp % 3)) tmp /= 3 } var result = 0 for (i, char) in list.reversed().enumerated() { if let digit = Int(String(char)) { result += digit * Int(pow(Double(3), Double(i))) } } return result}
ytw_developer
'Algorithm' 카테고리의 글 목록 (6 Page)