일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 작동 원리
- 스택 자바 코드
- jvm이란
- android retrofit login
- rxjava hot observable
- rxjava cold observable
- Rxjava Observable
- 안드로이드 유닛테스트란
- 안드로이드 os 구조
- ANR이란
- 안드로이드 레트로핏 crud
- 안드로이드 레트로핏 사용법
- 안드로이드 라이선스
- 스택 큐 차이
- 안드로이드 유닛 테스트
- 안드로이드 유닛 테스트 예시
- 서비스 vs 쓰레드
- 2022 플러터 설치
- ar vr 차이
- android ar 개발
- 플러터 설치 2022
- 안드로이드 라이선스 종류
- 2022 플러터 안드로이드 스튜디오
- 객체
- 서비스 쓰레드 차이
- rxjava disposable
- 자바 다형성
- 큐 자바 코드
- Today
- Total
목록알고리즘 문제 풀이/프로그래머스 (212)
나만을 위한 블로그
연산 ⊕ 는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 리턴한다. 양의 정수 a, b가 주어졌을 때 a ⊕ b, b ⊕ a 중 더 큰 값을 리턴하는 함수를 완성하라. 단, 두 연산의 결과가 같다면 a ⊕ b를 리턴한다 문제의 요구사항은 아래와 같다. a+b, b+a 중 더 큰 값을 리턴해야 한다 두 연산이 같은 경우 a+b를 리턴한다 정수 연산이 아닌 문자열 연산을 해야 한다 solution()의 매개변수로 받은 두 정수를 모두 문자열로 바꾼 다음, 다시 Int로 바꿔서 값을 확인한 다음 적절하게 리턴하면 된다. 주먹구구식으로 풀면 아래와 같다. class Solution { fun solution(a: Int, b: Int): Int { val first = "$a$b" val second =..
문자열 my_string, 정수 k가 주어질 때, my_string을 k번 반복한 문자열을 리턴하는 함수를 작성하라 for문을 써서 문자열을 반복해 이어붙인 다음 리턴하면 된다. 하지만 코틀린으로 풀고, 그저 단순히 문자열만 k번 이어붙이면 되기 때문에 for문보다 repeat()을 쓰는 게 더 간결하고 가독성이 좋다. class Solution { fun solution(my_string: String, k: Int): String { val sb = StringBuilder() repeat(k) { sb.append(my_string) } return sb.toString() } }
문자들이 담긴 배열 arr이 주어질 때, arr의 원소들을 순서대로 이어 붙인 문자열을 리턴하는 함수를 작성하라 별다른 요구사항 없이 배열 안의 원소들을 꺼내 하나의 문자열로 만들어 리턴하면 된다. arr을 대상으로 joinToString("")을 쓰면 된다. class Solution { fun solution(arr: Array): String = arr.joinToString("") }
길이가 같은 문자열 str1, str2가 있을 경우, 두 문자열의 각 문자가 앞에서부터 서로 번갈아가며 1번씩 등장하는 문자열을 만들어 리턴하는 함수를 완성하라 문제의 요구사항 중 특이한 것은 아래 정도다. 두 문자열은 길이가 같다 두 문자열은 모두 소문자다 항상 str1의 첫 문자부터 출력된다 그렇다면 두 문자열의 인덱스를 담을 변수를 하나씩 총 2개 만들고, 반복해서 str1, str2의 각각 해당 인덱스의 위치에 있는 문자를 가져와 이어붙이면 될 것이다. class Solution { fun solution(str1: String, str2: String): String { val sb = StringBuilder() val str1Len = str1.length val str2Len = str2...
문자열 my_string, overwrite_string과 정수 s가 주어진다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 리턴하는 함수를 작성하라 갑자기 문제 난이도가 매워진다. 일단 문제가 정확히 뭘 요구하는지부터 확인한다. 입출력 예를 보면 my_string의 2번 인덱스부터 overwrite_string을 덮어씌우라는 것이다. 만약 my_string이 overwrite_string보다 길다면, overwrite_string 뒤의 기존 문자열은 유지된다. 1번 예시를 보면 my_string의 2번 인덱스부터의 문자열을 "lloWorl"로 바꿨는데, 마지막 문자인 "d"는 그대로 유지되고 있는 걸 볼 수 ..
문자열 str을 시계 방향으로 90도 돌려서 입출력 예시와 같이 출력하라 처음 주어지는 코드는 아래와 같다. fun main(args: Array) { val s1 = readLine()!! } 문자열도 여러 Char들의 배열로 볼 수 있기 때문에 map을 통해서 문자열 안의 문자들을 어떻게 출력할지만 정해주면 된다. abcde의 각 알파벳들을 세로로 하나씩 출력해주기만 하면 되니 아래처럼 할 수 있다. fun main(args: Array) { val s1 = readLine()!! s1.map { print("$it\n") } } map {}을 쓰면 "abcde"의 각 요소인 a, b, c, d, e마다 중괄호 안의 코드를 실행시킨다. 이 경우 가로로 하나씩 출력하면서 개행문자를 붙이기 때문에, 출력..
문자열 str1, str2가 공백으로 구분돼 입력으로 주어진다. 입출력 예와 같이 str1, str2를 이어서 출력하라 처음 주어지는 코드는 아래와 같다. fun main(args: Array) { val input = readLine()!!.split(' ') val s1 = input[0] val s2 = input[1] } 1번째 입출력 예시대로라면 s1에는 "apple", s2에는 "pen"이 들어가 있을 것이다. 이 두 문자열을 공백 없이 서로 이어서 출력하기만 하면 된다. fun main(args: Array) { val input = readLine()!!.split(' ') val s1 = input[0] val s2 = input[1] println("$s1$s2") }
두 정수 a, b가 주어질 때 a+b=c 형태의 계산식을 출력하는 코드를 작성하라 출력을 보면 a, b를 출력하는 게 아니라 각 변수에 대입된 값과 둘을 더한 값을 출력하고 있다. 이것에 주의해서 작성하면 된다. fun main(args: Array) { val (a, b) = readLine()!!.split(' ').map(String::toInt) println("$a + $b = ${a + b}") } 문자열 안에서 변수 안의 값을 출력하려면 변수명 앞에 $를 붙인다. 만약 둘을 더한 값을 출력하려면 $ 뒤에 중괄호 블록을 만들고 그 안에 덧셈이나 뺼셈 등 사칙연산을 넣으면 된다.
다음과 같이 출력하는 코드를 작성하라 문자열 이스케이프 처리만 하면 된다. 이스케이프 처리할 문자열은 "\"과 큰따옴표로, 아래와 같이 작성하면 된다. fun main(args: Array) { println("!@#$%^&*(\\'\"?:;") } 이스케이프 처리가 필요한 문자열 앞에 "\"를 써주면 된다.
영어 알파벳으로 이뤄진 문자열 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..