일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스택 자바 코드
- 안드로이드 레트로핏 사용법
- 클래스
- jvm 작동 원리
- Rxjava Observable
- rxjava cold observable
- jvm이란
- 안드로이드 유닛 테스트
- 안드로이드 유닛테스트란
- 안드로이드 레트로핏 crud
- android ar 개발
- 멤버변수
- 객체
- 2022 플러터 설치
- rxjava disposable
- ANR이란
- 자바 다형성
- 스택 큐 차이
- 2022 플러터 안드로이드 스튜디오
- rxjava hot observable
- 서비스 vs 쓰레드
- 안드로이드 라이선스
- android retrofit login
- 플러터 설치 2022
- 서비스 쓰레드 차이
- 안드로이드 유닛 테스트 예시
- 큐 자바 코드
- 안드로이드 라이선스 종류
- 안드로이드 os 구조
- ar vr 차이
- Today
- Total
목록알고리즘 문제 풀이 (243)
나만을 위한 블로그

"*"의 높이, 너비를 1이라고 했을 때 "*"을 이용해 직각 이등변 삼각형을 그리려고 한다 정수 n이 주어지면 높이, 너비가 n인 직각 이등변 삼각형을 출력하는 코드를 작성하라 그냥 저렇게 나오도록 구현하면 된다. 사용할 것은 3을 입력하면 저렇게 나와야 하니까 반복문을 써야 한다는 것이다. 별 옆에 공백이 있다고 생각하면 1번 줄은 별이 1개 + 공백이 2개, 2번 줄은 별이 2개 + 공백이 1개, 3번 줄은 별이 3개 + 공백이 0개라고 볼 수 있다. 공백은 별도로 print()하지 않아도 되니까 별만 신경쓰면 된다. fun main(args: Array) { val (n) = readLine()!!.split(' ').map(String::toInt) for (i in 0 until n) { fo..

문자열 my_string이 매개변수로 주어진다. my_string을 거꾸로 뒤집은 문자열을 리턴하도록 solution()을 완성하라 앞선 문제들에서 컬렉션에 reversed()를 먹이면 컬렉션 안의 요소들이 역순으로 배치되는 걸 확인했다. 그런데 이 reversed()가 문자열에도 적용된다. 그래서 이런 코드를 제출하면 정답으로 인정된다. class Solution { fun solution(str: String) = str.reversed() } 컬렉션 정렬 함수들은 아래 포스팅에 일부 정리해뒀으니 궁금하면 확인해보자. https://onlyfor-me-blog.tistory.com/569 [Kotlin] 컬렉션 정렬 함수 정리 코틀린에는 Immutable, mutable 2가지 속성이 있고 컬렉션도 ..

정수가 들어 있는 배열 num_list가 매개변수로 주어진다 num_list의 원소 순서를 거꾸로 뒤집은 배열을 리턴하도록 solution()을 완성하라 그냥 뒤집으면 된다. 코틀린은 컬렉션에 대한 여러 편의 함수를 제공하기 때문에 컬렉션 안의 요소를 뒤집는 함수를 호출한 다음 intArray로 바꿔주면 된다. class Solution { fun solution(num_list: IntArray) = num_list.reversed().toIntArray() } 이것도 충분히 간단한데 더 간단하게 할 수 있다. 함수 한 번 호출하면 끝이다. class Solution { fun solution(num_list: IntArray) = num_list.reversedArray() } 정말 변태같이 짧아진다..

머쓱이는 40살인 선생님이 몇 년도에 태어났는지 궁금해졌다 나이 age가 주어질 때 2022년 기준 출생연도를 리턴하는 solution()을 완성하라 나이는 태어난 연도에 1살이라는 조건을 잘 생각해야 한다. 그래서 2022년을 기준으로 하는 게 아니라 2023년을 기준으로 뺄셈을 해야 한다. 주먹구구식으로 푼다면 아래와 같이 풀 수 있다. class Solution { fun solution(age: Int): Int { val a = age - 1 return 2022 - a - 1 } } a 뒤의 -1이 거슬리기 때문에 저걸 없애고 뺄셈한 결과를 바로 리턴시키면 더 간결해진다. 전체에 +1을 시키기 때문에 2022는 2023이 되도록 하면 된다. age는 입력값이기 때문에 +1을 할 필요가 없다. ..

아이스 아메리카노는 한 잔에 5,500원이다. 머쓱이가 가진 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노 잔 수와 잔액을 순서대로 담은 배열을 리턴하는 solution()을 완성하라 입력값을 5500으로 나눠서 최대로 마실 수 있는 아메리카노 개수를 구하고, money에서 (5500x최대로 마실 수 있는 아메리카노 개수)를 뺀 값을 배열로 만들어 리턴하면 된다. class Solution { fun solution(money: Int): IntArray { val count = money / 5500 val other = money - (5500 * count) return intArrayOf(count, other) } } 이것보다 더 짧게 만들 수도 있다. clas..

머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해준다. 구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 리턴하도록 solution()을 완성하라 조건에 따라 문제에서 제시하는 할인율을 적용시킨 price를 리턴시키면 된다. 주의할 것은 저 조건들에 해당하지 않는 값이 들어올 경우에는 그 금액을 리턴하도록 처리해야 한다. class Solution { fun solution(price: Int): Int = if (price >= 500000) { (price * 0.8).toInt() } else if (price >= 300000) { (price * 0.9).toInt() } else if (price >= 100000) ..

정수 배열 numbers가 매개변수로 주어진다 numbers의 원소의 평균값을 리턴하도록 solution()을 완성하라 배열 안에 들어있는 모든 값들을 더하고 배열 크기만큼 나눠서 평균값을 구하면 된다. fun solution(numbers: IntArray): Double { var sum = 0 for (i in numbers) { sum += i } return sum.toDouble() / numbers.size } 아니면 코틀린에서 제공하는 average()를 쓰면 된다. 컬렉션에 들어있는 숫자 원소들의 평균값을 구하는 함수다. fun solution(numbers: IntArray) = numbers.average()

피자가게는 피자를 2조각에서 10조각까지 원하는 수로 잘라준다 피자 조각 수 slice와 피자 먹는 사람의 수 n이 매개변수로 주어질 때, n명이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 리턴하도록 solution()을 완성하라 그냥 인원수를 피자조각 개수로 나눠서 나머지가 없으면 몫을 리턴하고, 아니면 몫에 +1을 하면 풀리겠다 생각해서 그렇게 코드를 짰더니 통과됐다. fun solution(slice: Int, n: Int): Int { if (n % slice == 0) { return n / slice } else { return n / slice + 1 } } 코틀린에선 이런 함수라면 리턴문을 안 사용해도 되고, 굳이 2개나 쓸 필요도 없으니 아래처럼 써도 된다...

피자가게는 피자를 6조각으로 잘라 준다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 리턴하도록 solution()을 완성하라 처음에는 입출력 예를 보고 6과 10의 최소공배수가 30이고, 30조각은 5판이니까 5가 나온 건가 싶어서 유클리드 호제법으로 최소공배수를 구해서 풀기는 풀었는데, 쓸데없이 복잡하다. 더 단순하게 풀 수 있는 방법을 고민하다가 잘 안 되서 다른 사람의 풀이를 확인했다. https://velog.io/@anna_developer/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%ED%94%BC%EC%9E%90-%EB%8..

피자가게는 피자를 7조각으로 잘라 준다. 피자를 나눠먹을 사람 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자 수를 리턴하는 solution()를 완성하라 피자 1판을 7조각으로 나누는데 최소 한 명은 꼭 먹으려면 7로 나눠야 한다. 15명인 경우 (7x2)+1이기 때문에 n이 7의 배수가 아니면 1판 더 추가해야 한다. 이걸 코드로 옮겼더니 통과했다. class Solution { fun solution(n: Int) = if (n % 7 == 0) { n / 7 } else { n / 7 + 1 } }