일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 카카오 2021
- c언어
- 최솟값 만들기
- 프로그래머스 답
- supervisely
- swift 시작
- 카카오 2020
- 파이썬
- Python
- 프로그래머스
- Kakao
- coco 데이터셋
- 이미지학습
- 카카오 2019
- Siwft
- 데이터셋 만들기
- 머신러닝
- ios 개발 시작
- swift 배열
- 문제
- fast.ai
- 카카오 2018
- 스위프트
- 날씨 앱
- 카카오
- kakao 2018
- roboflow
- 소수
- SwiftUI
- swift
Archives
- Today
- Total
잡초의 일지
[Swift] 프로그래머스 | 코딩테스트 연습 -> 스택/큐 -> 탑 본문
728x90
반응형
SMALL
import Foundation
func solution(_ heights:[Int]) -> [Int] {
var arr: [Int] = []
var count: Int = 0
for var i in 1...heights.count - 1 { // i는 4부터 1까지
i = heights.count - i
for var j in 1...i { // j는 i-1부터 0까지
j = i - j
if heights[j] > heights[i] {
arr.insert(j+1, at: 0)
count = arr.count
break
}else{
count += 1
}
}
if arr.count != count {
arr.insert(0, at: 0)
}
}
arr.insert(0, at: 0)
return arr
}
내껄 제출하고 나니까, 10줄정도는 더 짧은 코드가 많았다.
그래서 코드를 더 줄여보려고 한다.
import Foundation
func solution(_ heights:[Int]) -> [Int] {
var res: [Int] = []
for i in 0..<heights.count { // i 는 0부터 4까지
var numToAppend = 0
if i == 0 { // heights의 첫 element는 무조건 0이기 때문.
res.append(0)
continue // 밑에꺼 다 무시하고 i += 1을 한다.
}
else {
for j in 0..<i { // j 는 0부터 i-1까지
if heights[j] > heights[i] {
numToAppend = j + 1 // i-1까지 돌면서 가장 가까운 숫자중에 조건을 만족하는 숫자로 바뀐다.
}
}
}
res.append(numToAppend) // 조건에 맞는 숫자를 res배열의 뒤에 더한다.
}
return res
}
몇줄 안줄긴 했지만, 난 직관적으로 풀려고 배열 뒤쪽부터 확인했는데, 앞부터 하는 방법도 생각해 보는 계기였다.
----------------------------------------------------------------------------------------------------------------------------
생각해보니까 , 스택/큐 섹션인데 스택이나 큐를 안쓴거 같아서
스택/큐를 이용하면 어떻게 써야 할까 생각해 봤다.
----------------------------------------------------------------------------------------------------------------------------
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
728x90
반응형
LIST
'[코딩] 문제풀기 > Swift' 카테고리의 다른 글
[Swift] 프로그래머스 | 코딩테스트 연습 -> 연습문제 -> 올바른 괄호 (0) | 2020.07.28 |
---|---|
[Swift] 프로그래머스 | 코딩테스트 연습 -> 연습문제 -> 최솟값 만들기 (0) | 2020.07.28 |
[Swift] 프로그래머스 | 코딩테스트 연습 -> 연습문제 -> 피보나치 수 (0) | 2020.07.26 |
[Swift] 프로그래머스 | 코딩테스트 연습 -> Summer/Winter Coding(~2018) -> 소수 만들기 (0) | 2020.07.25 |
[Swift] 프로그래머스 | 코딩테스트 연습 -> 연습문제 -> N개의 최소공배수 (0) | 2020.07.25 |
Comments