목록전체 글 (473)
MUKER_DEV with iOS
1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 나의 풀이 let inputs = readLine()!.split(separator: " ").map{Int(String($0))!} var (n, r, c) = (inputs[0], inputs[1], inputs[2]) func solution(_ n: Int, _ r: Int, _ c: Int) -> Int { guard n > 0 else { return 0 } return 2 * (r % 2) + (c % 2) + 4 * solution(n -..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 func solution(_ skill:String, _ skill_trees:[String]) -> Int { let skillOrder = Array(skill) var count = 0 for i in skill_trees { let skill = i.filter { skillOrder.contains($0) } if String(skillOrder[0..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 func solution(_ land:[[Int]]) -> Int{ var myland = land for i in 1..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 func solution(_ record:[String]) -> [String] { var users = [String: String]() var temp = [String]() var result = [String]() for i in record { let chat = i.split(separator: " ").map { String($0) } switch chat[0] { case "Enter": users[chat[1]] = chat[2] temp.append("\(chat[1]) enter..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 import Foundation func solution(_ fees:[Int], _ records:[String]) -> [Int] { var enterTime = [String: String]() // 출입시간 var totalTime = [String: Int]() // 누적주차시간 var result = [Int]() // 요금정산 for i in records { // 주차시간 계산 let record = i.split(separator: " ").map { String($0) } if r..
10813번: 공 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 www.acmicpc.net 나의 풀이 let NM = readLine()!.split(separator: " ").map { Int($0)! } var arr = Array(1...NM[0]) for _ in 0..
10810번: 공 넣기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 www.acmicpc.net 나의 풀이 let NM = readLine()!.split(separator: " ").map { Int($0)! } let N = NM[0], M = NM[1] // N var basket = Array(repeating: 0, count: N) for _ in 0..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 func solution(_ n:Int, _ t:Int, _ m:Int, _ p:Int) -> String { var count = 0 // 게임에 사용될 Int값 var turn = 0 // 순서 var result = "" loop: while true { let word = String(count, radix: n).uppercased().map { String($0) } for i in word { if (turn % m) + 1 == p { // 0일때 순서 1부터 시작 result += ..
1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 나의 풀이 var num = Int(readLine()!)! var arr = Array(repeating: 0, count: num+1) for i in 1...num { if i == 1 { continue } arr[i] = arr[i-1]+1 // 1을 뺏을 때 if i % 3 == 0 { arr[i] = min(arr[i], arr[i/3]+1) } // 3으로 나눠질 때 if i % 2 == 0 { arr[i] = min(arr[i], arr[i/2]+1) } // 2로 나눠질 때 } print(arr[num]) 풀이 키워드 DP 2부터 최소로 1까지 도달 할 수 ..
1520번: 내리막 길 첫째 줄에는 지도의 세로의 크기 M과 가로의 크기 N이 빈칸을 사이에 두고 주어진다. 이어 다음 M개 줄에 걸쳐 한 줄에 N개씩 위에서부터 차례로 각 지점의 높이가 빈 칸을 사이에 두고 주어진다. www.acmicpc.net 나의 풀이 struct Node { // r,c를 넘겨주기 위한 node var r: Int var c: Int } let MN = readLine()!.split(separator: " ").map { Int($0)! } let M = MN[0] // 세로의 크기 let N = MN[1] // 가로의 크기 let rx = [0,0,-1,1] // x축 이동 let ry = [1,-1,0,0] // y축 이동 var map = [[Int]]() var cnt ..