Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- android retrofit login
- 안드로이드 유닛 테스트
- 안드로이드 라이선스 종류
- 서비스 vs 쓰레드
- 안드로이드 라이선스
- 안드로이드 유닛테스트란
- 스택 자바 코드
- 안드로이드 유닛 테스트 예시
- jvm 작동 원리
- rxjava cold observable
- rxjava disposable
- 멤버변수
- 안드로이드 레트로핏 사용법
- ANR이란
- android ar 개발
- jvm이란
- 큐 자바 코드
- 스택 큐 차이
- rxjava hot observable
- 서비스 쓰레드 차이
- 2022 플러터 안드로이드 스튜디오
- 플러터 설치 2022
- 안드로이드 레트로핏 crud
- Rxjava Observable
- 안드로이드 os 구조
- 자바 다형성
- 객체
- 2022 플러터 설치
- 클래스
- ar vr 차이
Archives
- Today
- Total
나만을 위한 블로그
[Algorithm] 프로그래머스 - 피자 나눠 먹기(2) (Kotlin) 본문
728x90
반응형
피자가게는 피자를 6조각으로 잘라 준다. 피자를 나눠먹을 사람의 수 n이 매개변수로
주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자조각을 먹어야 한다면
최소 몇 판을 시켜야 하는지를 리턴하도록 solution()을 완성하라
처음에는 입출력 예를 보고 6과 10의 최소공배수가 30이고, 30조각은 5판이니까 5가 나온 건가 싶어서 유클리드 호제법으로 최소공배수를 구해서 풀기는 풀었는데, 쓸데없이 복잡하다.
더 단순하게 풀 수 있는 방법을 고민하다가 잘 안 되서 다른 사람의 풀이를 확인했다.
fun solution(slice: Int, n: Int): Int {
var p = 6
while (p % n != 0) {
p += 6
}
return p / 6
}
0으로 나눠 떨어질 때까지 피자를 주문하고 (p += 6) 주문 후 6조각으로 나눠서(p / 6) 구하는 방식이라고 한다.
while을 통해 피자 조각을 입력값만큼 계속 나눠서 나머지가 없을 때까지 반복하고, 나머지가 없으면 whlie을 통과해서 리턴문으로 이동한다.
역시 기존에 풀었던 방식과 다른 방식을 고민하고 코드로 만들어내는 과정이 어렵다. 될 때까지 한다.
반응형
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[Algorithm] 프로그래머스 - 배열의 평균값 (Kotlin) (0) | 2022.12.21 |
---|---|
[Algorithm] 프로그래머스 - 피자 나눠 먹기(3) (Kotlin) (0) | 2022.12.21 |
[Algorithm] 프로그래머스 - 피자 나눠 먹기(1) (Kotlin) (0) | 2022.12.21 |
[Algorithm] 프로그래머스 - 짝수는 싫어요 (Kotlin) (0) | 2022.12.20 |
[Algorithm] 프로그래머스 - 최빈값 구하기 (Kotlin) (0) | 2022.12.20 |
Comments