Where who wants to meet someone
이차원 배열 대각선 순회하기 본문
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/181829
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 답안 / 다른 사람들의 답안
import Foundation
func solution(_ board:[[Int]], _ k:Int) -> Int {
var result = [Int]()
for i in board.indices {
for j in board[i].indices {
result.append(i + j <= k ? board[i][j] : 0)
}
}
return result.reduce(0, +)
}
- board의 인덱스 내에서 i로 반복, board의 원소 하나의 인덱스 내에서 j로 반복하는 이중 for문을 사용
- i + j가 k 이하라면 result에 board[i][j] 값을 추가, 아니라면 0을 추가
- result를 reduce하여 반환
// 풀이 1
import Foundation
func solution(_ board:[[Int]], _ k:Int) -> Int {
var ans = 0
for i in 0..<board.count {
for j in 0..<board[0].count where i + j <= k {
ans += board[i][j]
}
}
return ans
}
// 풀이 2
import Foundation
func solution(_ board:[[Int]], _ k:Int) -> Int {
var answer = 0
for i in 0..<board.count {
for j in 0..<board[i].count where i + j <= k {
answer += board[i][j]
}
}
return answer
}
- 굳이 reduce를 하지 않고 더했어도 됐다.
- for문에 where절로 조건을 빼는 방법도 있다
점수: +6
'프로그래머스 알고리즘 문제 기록 > 코딩 기초 트레이닝' 카테고리의 다른 글
날짜 비교하기 (0) | 2024.02.08 |
---|---|
빈 배열에 추가, 삭제하기 (0) | 2024.02.05 |
문자열 잘라서 정렬하기 (0) | 2024.02.01 |
간단한 식 계산하기 (0) | 2024.02.01 |
특별한 이차원 배열 2 (0) | 2024.01.31 |