일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 미로 탐색 알고리즘
- PHP
- Stack
- SWiFT
- 파일 시스템
- 암호수학
- ftz level13
- OSI
- 재귀
- 정렬 알고리즘
- web
- c언어
- pwnable.kr
- 큐
- level13
- C
- 파이썬
- 백준
- Java
- windosws wbcs
- System
- 두근두근 자료구조
- 자료구조
- windosw 문자열
- 시간복잡도
- ftz
- LoB
- War Game
- 스택
- HTML
Archives
- Today
- Total
나의 기록, 현진록
[Swift] 프로그래머스 Summer/Winter Coding(2019) > 멀쩡한 사각형 본문
Programming/Algorithm & Data Structure
[Swift] 프로그래머스 Summer/Winter Coding(2019) > 멀쩡한 사각형
guswlsdk 2022. 5. 18. 15:21반응형
코딩테스트 연습 - 멀쩡한 사각형
가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을
programmers.co.kr
문제풀이
빗선을 지나는 사각형의 갯수를 구하는 공식을 사용하는 문제다.
빗선을 지나는 사각형의 갯수 = 가로 + 세로 - 최대공약수(가로, 세로)
정답은 (가로 * 세로) - (가로 + 세로 - 최대공약수)로 구할 수 있다.
코드
import Foundation
func gcd(up: Int, down: Int) -> Int{
var up = up
var down = down
while down != 0{
let r = up % down
up = down
down = r
}
return up
}
func solution(_ w:Int, _ h:Int) -> Int64{
return Int64((w*h)-(w+h-gcd(up: max(w,h), down: min(w, h))))
}
반응형
'Programming > Algorithm & Data Structure' 카테고리의 다른 글
[Swift] 프로그래머스 코딩테스트 연습 > 짝지어 제거하기 (0) | 2022.05.27 |
---|---|
[Swift] 프로그래머스 2021 Dev-Matching: 웹 백엔드 개발자(상반기) > 행렬 테두리 회전하기 (0) | 2022.05.19 |
[Swift] 프로그래머스 2019 KAKAO BLIND RECRUITMENT > 오픈채팅방 (0) | 2022.05.17 |
[Swift] 프로그래머스 코딩테스트 연습 > 깊이/너비 우선 탐색 > 타겟 넘버 (0) | 2022.05.16 |
[Swift] 2020 KAKAO BLIND RECRUITMENT 문자열 압축 (0) | 2022.05.15 |