일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- roboflow
- swift
- coco 데이터셋
- Siwft
- 스위프트
- ios 개발 시작
- 카카오 2020
- 최솟값 만들기
- 카카오 2019
- 문제
- 데이터셋 만들기
- Python
- 머신러닝
- SwiftUI
- 카카오
- fast.ai
- 파이썬
- 소수
- swift 시작
- 프로그래머스
- 카카오 2018
- c언어
- 날씨 앱
- 이미지학습
- Kakao
- 카카오 2021
- supervisely
- 프로그래머스 답
- kakao 2018
- swift 배열
Archives
- Today
- Total
잡초의 일지
[Swift] 프로그래머스 | 코딩테스트 연습 -> 2019 카카오 개발자 겨울 인턴십 -> 크레인 인형뽑기 게임 본문
[코딩] 문제풀기/Swift
[Swift] 프로그래머스 | 코딩테스트 연습 -> 2019 카카오 개발자 겨울 인턴십 -> 크레인 인형뽑기 게임
JabCho 2021. 2. 19. 05:54728x90
반응형
SMALL
func solution(_ board:[[Int]], _ moves:[Int]) -> Int {
var stack: Array<Int> = []
var newBoard = board
var count = 0
var j = 0
for _ in moves { // 입력된 moves 만큼 반복해서 해야 함.
for i in 0..<board.count { // 정사각형이므로 row==col이므로, 바구니의 깊이는 board.count와 같음.
var m = moves[j] // 입력된 move값. 몇번째 col으로 가야 하는지의 정보가 담겨있다.
if (newBoard[i][m-1] == 0){ // 입력된 값은 1부터 시작하므로 -1 해준다.
continue;
}else{
stack.append(newBoard[i][m-1]) // 뽑은 인형을 stack에 넣어준다.
newBoard[i][m-1] = 0 // 기존 보드에서는 0으로 해서 제거해준다.
if (stack.count > 1) { // 전에 들어간 인형과 지금 들어간 인형이 같은지 판별하고 같으면 없앤다.
var last = stack[stack.count - 1]
var first = stack[stack.count - 2]
if (first == last) {
stack.popLast()
stack.popLast()
count += 2
}
}
break;
}
}
j += 1
}
return count
}
문제의 길이가 상당해서 주춤했지만, 쉬운 문제였다.
코드를 다 쓰고 나니, for와 if문의 난장판 같이 보인다. 더 이쁘게 풀 수 있는 방법은 없을까?
728x90
반응형
LIST
'[코딩] 문제풀기 > Swift' 카테고리의 다른 글
[Swift] 프로그래머스 | 코딩테스트 연습 -> 2021 KAKAO BLIND RECRUITMENT -> 신규 아이디 추천 (0) | 2021.02.20 |
---|---|
[Swift] 프로그래머스 | 코딩테스트 연습 -> 2020 카카오 인턴십 -> 키패드 누르기 (0) | 2021.02.19 |
[Swift] 프로그래머스 | 코딩테스트 연습 -> 2018 KAKAO BLIND RECRUITMENT -> [1차] 다트 게임 (0) | 2021.02.19 |
[Swift] 프로그래머스 | 코딩테스트 연습 -> 연습문제 -> 수박수박수박수박수박수? (0) | 2021.02.18 |
[Swift] 프로그래머스 | 코딩테스트 연습 -> 연습문제 -> 콜라츠 추측 (0) | 2021.02.18 |
Comments