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 | 31 |
Tags
- ar vr 차이
- 안드로이드 os 구조
- ANR이란
- 큐 자바 코드
- 서비스 vs 쓰레드
- Rxjava Observable
- rxjava disposable
- 안드로이드 유닛테스트란
- 안드로이드 레트로핏 crud
- 스택 자바 코드
- 멤버변수
- android retrofit login
- 2022 플러터 설치
- 클래스
- 안드로이드 유닛 테스트
- 서비스 쓰레드 차이
- 안드로이드 라이선스 종류
- jvm이란
- rxjava cold observable
- 자바 다형성
- 플러터 설치 2022
- rxjava hot observable
- 안드로이드 유닛 테스트 예시
- android ar 개발
- 스택 큐 차이
- 객체
- jvm 작동 원리
- 안드로이드 레트로핏 사용법
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 라이선스
Archives
- Today
- Total
나만을 위한 블로그
[Algorithm] 최소값, 최대값 구하기 본문
728x90
반응형
공백이 포함된 숫자들을 입력받아서 이 중 최소값, 최대값을 구하는 예제다.
min(), max()가 있긴 하지만 이를 사용하지 않고 어떻게 구하는지 확인해 본다.
먼저 공백을 포함해서 여러 숫자들을 받으면 숫자들만 갖고 있어야 하니까 여러 숫자들을 담을 수 있는 리스트를 쓰는 게 나을 것이다. 파이썬으로 작성한다면 아래와 같다.
li = list(map(int, input("숫자 입력 : ").split()))
m = li[0]
for i in li:
if i < m:
m = i
print(m)
- 사용자에게 숫자를 입력받는데 리스트에 담아야 한다. 숫자만 따로 리스트에 담아야 하기 때문에 공백을 같이 넣는데, 공백을 리스트에 넣을 필요는 없기 때문에 split()으로 공백을 없앤다
- 리스트의 첫 번째 값을 임의의 변수에 넣는다. 최소값을 구하기 위해 만든 변수다
- for문으로 리스트 내부를 돌면서 리스트의 첫 번째 값과 리스트 내부의 값들을 하나씩 비교한다. 만약 리스트 안에서 임의의 변수값보다 작은 숫자를 발견했을 경우, 임의의 변수에 발견한 작은 숫자를 넣는다. 이 과정을 반복하면 임의의 변수 m에는 리스트에서 가장 작은 숫자만 담기게 된다
코틀린으로 짜면 아래와 같다.
fun main() = with(System.`in`.bufferedReader()) {
print("num : ")
val num = readLine().split(" ")
var m = num[0]
for (i in num) {
if (i < m) {
m = i
}
}
print(m)
}
이 코드를 실행하면 아래와 같이 작동한다.
그럼 최대값을 구하려면 어떻게 해야 할까? 최소값을 구할 때 반복문 내부에서 리스트에 들어있는 값(i)을 임의의 변수(m)와 비교해 리스트에 들어있는 값이 작으면 변수에 담았으니 if문의 조건을 거꾸로 하면 될 것이다.
li = list(map(int, input("숫자 입력 : ").split()))
m = li[0]
for i in li:
if i > m:
m = i
print(m)
그리고 위에서 실행했을 때와 같은 숫자들을 넣으면 어떻게 실행되는지 보자.
넣은 숫자들 중 201이 가장 큰 숫자기 때문에 print()로 임의의 변수를 출력하면 가장 큰 숫자인 201이 출력되는 걸 볼 수 있다. 저 숫자들 말고 다른 숫자들을 넣어도 같은 결과가 나온다.
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[Algorithm] 유클리드 호제법이란? (Kotlin) (0) | 2023.01.20 |
---|---|
[Algorithm] 코틀린 알고리즘 문제풀이 팁 사이트 모음 (0) | 2023.01.10 |
[Algorithm] 합 / 곱 구하기, 값 누적하기 (0) | 2022.11.24 |
[Algorithm] 시간 복잡도란? 공간 복잡도란? 빅 오 표기법이란? (0) | 2022.11.23 |
[Algorithm] 알고리즘 서적 별 목차 및 알고리즘 종류 정리 (0) | 2021.10.28 |
Comments