일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 라이선스
- 2022 플러터 설치
- 안드로이드 유닛 테스트
- Rxjava Observable
- 안드로이드 유닛 테스트 예시
- 멤버변수
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 레트로핏 crud
- 플러터 설치 2022
- 클래스
- android ar 개발
- 안드로이드 라이선스 종류
- android retrofit login
- 큐 자바 코드
- 안드로이드 유닛테스트란
- jvm이란
- 스택 자바 코드
- 안드로이드 레트로핏 사용법
- jvm 작동 원리
- ar vr 차이
- 서비스 vs 쓰레드
- rxjava cold observable
- rxjava disposable
- 스택 큐 차이
- rxjava hot observable
- 자바 다형성
- 서비스 쓰레드 차이
- 객체
- ANR이란
- 안드로이드 os 구조
- Today
- Total
목록알고리즘 문제 풀이 (243)
나만을 위한 블로그
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/w8vyt/btsATg7RLDF/Oq70jrivuozQJry7O8gri0/img.png)
영어 알파벳으로 이뤄진 문자열 str이 주어진다. 각 알파벳을 대문자는 소문자로, 소문자는 대문자로 변환해 출력하라 문자열을 돌면서(=순회하면서) 소문자인 알파벳은 대문자로, 대문자인 알파벳은 소문자로 변환하면 된다. 하지만 궁극적으로 의문인 것은 어떻게 대소문자를 구별하고, 대소문자로 변환하는가일 것이다. 아래와 같이 작성하면 소문자는 대문자로, 대문자는 소문자로 변환할 수 있다. fun main(args: Array) { val s1 = readLine()!! val result = s1.map { when { it.isUpperCase() -> it.lowercase() it.isLowerCase() -> it.uppercase() else -> it } }.joinToString("") print..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/PZ6N4/btsASckDX9J/9k1Fxm4cm28tJ591bLYkqk/img.png)
문자열 str, 정수 n이 주어진다. str이 n번 반복된 문자열을 만들어 출력하라 반복이 필요하다면 for, while 등을 사용할 수 있다. 문제에서 기본으로 주어지는 코드는 아래와 같다. fun main(args: Array) { val input = readLine()!!.split(' ') val s1 = input[0] val a = input[1]!!.toInt() } "string 5"를 입력하면 공백을 기준으로 분리하는 split()의 결과로 string, 5로 분리될 것이다. 그럼 a에 몇 번 반복해야 하는지에 대한 숫자가 담길 것이고, 이 값만큼 반복해서 s1을 반복 출력하면 된다. for문을 사용한다면 아래처럼 작성할 수 있다. fun main(args: Array) { val in..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c22bk8/btsARWWBQ5p/Dg0QlUFGLVkXCVtRsZpWx1/img.png)
정수 a, b가 주어진다. 각 수를 입력받아 입출력 예와 같은 형식으로 출력하는 코드를 작성하라 에디터 안에 기본 작성된 코드는 아래와 같다. fun main(args: Array) { val (a, b) = readLine()!!.split(' ').map(String::toInt) println(a + b) } 이미 a, b의 Int 값은 제공되는 걸 볼 수 있다. 그럼 내가 할 일은 출력 예시에 맞춰서 콘솔에 출력되도록 println()을 수정하는 것이다. 입출력 예시의 출력을 보면 공백에 주의해야 하고 a, b의 값을 각각 출력하고 있는 걸 볼 수 있다. 그럼 문자열 안에 Int 값을 넣어야 한다는 뜻인데, 어떻게 할 수 있을까? 코틀린에선 문자열 중간에 숫자, 변수, 함수를 넣을 수 있는데 $ ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/B5gnj/btsATZxFGzI/THrktXTWrYFiFvsqBcsLv0/img.png)
문자열 str이 주어질 때 str을 출력하는 코드를 작성하라 문자열을 받으면 그것을 그대로 출력하면 해결되는 문제다. 코틀린에서 별다른 추가사항 없이 문자열을 출력하는 함수는 print(), println()이 있다. 둘 중 어느 것을 사용하더라도 테스트는 통과된다. 여기선 println()을 사용한다. fun main(args: Array) { val s1 = readLine()!! } 문제 오른쪽 코드 에디터에 위와 같이 작성돼 있는데, !! 기호는 readLine()을 호출한 결과가 널이 아닌 값이 반드시 존재한다는 뜻이다. 해당 값이 널이 아님을 보증하는 기호기 때문에, 널이 들어온다면 프로그램 실행 중 이 부분에서 에러가 발생하며 프로그램이 강제종료된다. 먼저 널 같은 거 생각하지 않고 작성하겠..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/u77Sa/btsxiex3jIg/qpT2CZTQ66LdTx8ND0EJ1k/img.png)
4의 배수인 숫자만 입력으로 들어오고, "long" 글자 하나가 4라는 것, 공백 삽입에 주의하면 되는 문제다. 귀찮게 for문 쓰는 것보다 repeat를 사용한다. 그리고 long이 몇 개가 붙을지도 알 수 없으니 깡으로 String을 이어붙이는 것보다 StringBuilder를 활용하자. fun main() { val num: Int = readln().toInt() / 4 val sb = StringBuilder() repeat(num) { sb.append("long ") } val result = sb.append("int").toString() println(result) }
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/AEs7R/btsxg4h9QDp/Cp7wTUnCMy30DGmFIl71A1/img.png)
숫자와 숫자 사이에 공백이 있을테니 그걸로 split해서 리스트에 담은 다음, 결과 리스트에 담긴 요소들을 모두 더해서 출력하면 끝이다. fun main() { val list = readln().split(" ") println(list.sumOf { it.toLong() }) } Int로 제출하면 런타임 에러(NumberFormat)이라고 뜨면서 실패한다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Zl8sB/btrXMTRfQE9/39XXZC935GZBlnShAZbxvK/img.png)
등차수열 or 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 리턴하는 solution()을 완성하라 common 안의 값들이 등차인지 등비인지 어떻게 구분하는지를 알아채지 못해서 풀지 못했다. https://gyulpiki.tistory.com/entry/%EB%8B%A4%EC%9D%8C%EC%97%90-%EC%98%AC-%EC%88%AB%EC%9E%90-Java-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%9E%85%EB%AC%B8 다음에 올 숫자 - Java [프로그래머스 입문] ❤️ Problem 더보기 문제 등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 ret..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/db6m4x/btrXK82eE7E/3VJWOaiI3nNQC7iP2x5FM0/img.png)
연속된 3개의 정수를 더해 12가 되는 경우는 3, 4, 5다. 두 정수 num, total이 주어진다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 리턴하는 solution()을 완성하라 풀지 못해서 다른 사람의 풀이를 보고 코틀린으로 바꿨다. https://gyulpiki.tistory.com/entry/%EC%97%B0%EC%86%8D%EB%90%9C-%EC%88%98%EC%9D%98-%ED%95%A9-Java-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%9E%85%EB%AC%B8 연속된 수의 합 - Java [프로그래머스 입문] ❤️ Problem 더보기 문제 연속된 세 개의 정수를 더해 12가 되..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/latGb/btrXQhiLnFT/xe2X00nJBWCmNnxvoBOZ6K/img.png)
그냥 가로, 세로가 각각 2니까 총 4인데 가위질을 3번 하네? 라고 느껴서 아무 생각 없이 써서 제출해봤는데 이게 정답이었다. 운이 좋았다. class Solution { fun solution(M: Int, N: Int): Int = M * N - 1 }
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mS6LF/btrXInjF0hW/z1jKQ1aUNqg9s8JrXJtZqk/img.png)
문자열 hello에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 ohell이 된다. 이걸 문자열을 민다고 정의한다면 문자열 A, B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 리턴하고 밀어서 B가 될 수 없으면 -1을 리턴하는 solution()을 완성하라 문자열 길이만큼 rotate()를 써보거나 다른 방법을 써봤지만 풀리지 않아서 다른 사람의 풀이를 참고해 코틀린으로 바꿨다. https://gyulpiki.tistory.com/entry/%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B0%80%EA%B8%B0-Java-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%..