반응형
반응형
코틀린 코드가 자바 코드로는 어떻게 동작하는지 확인해보고 싶을 때가 있다. 코틀린을 자바 코드로 변환하려면 코틀린 바이트코드(.class)를 자바로 decompile 하면 된다. Intellij IDE 에서는 이를 간단하게 변환해볼 수 있다. Bytecode 보기 Shift + Shift 클릭 하거나 Cmd + Shift + A 클릭 "Kotlin Bytecode" 입력 아래와 같이 바이트코드를 확인할 수 있다. 자바 코드 보기 바이트코드를 자바코드로 변환하기 위해서는 DECOMPILE 버튼을 클릭하면 된다. 아래와 같이 DECOMPILE 버튼이 보이지 않을 수가 있다. 이런 경우는 Java Bytecode Decompiler plugin를 설치해주고 enable 해주면 된다.
문제 풀이 주어진 문자열이 팰린드롬인지 확인하는 문제이다. 팰린드롬은 뒤집어도 같은 말이 되는 단어 또는 문장을 말한다. 문제에서 팰린드롬인지 확인할 때 알파벳과 숫자만을 대상으로 하고 대소문자를 구분하지 않는다고 했다. 우선 주어진 문자열을 다 소문자로 바꾼다. 그리고 정규식으로 알파벳과 숫자가 아닌 불필요한 문자를 제거한다. 이제 for 문을 돌면서 왼쪽 인덱스의 값과 오른쪽 인덱스의 값이 같은지를 확인한다. 왼쪽은 한 칸씩 오른쪽으로, 오른쪽은 한 칸씩 왼쪽으로 이동하면서 비교한다. 만약 비교한 값이 다르면 팰린드롬이 아니고 모두 같으면 팰린드롬이다. 코드 class Solution { public boolean isPalindrome(String s) { s = s.toLowerCase(); St..
문제 풀이 문자열(stones)에 원하는 문자(jewels)가 몇 개가 포함되어 있는 지를 세는 문제이다. 대소문자를 구분하고 인풋은 영어 문자만 들어온다. 코드 jewels 를 Set으로 만들고 각 stone마다 순회하면서 포함되어 있으면 카운트를 늘리는 방식으로 풀었다. class Solution { public int numJewelsInStones(String jewels, String stones) { Set jewel = jewels.chars() .mapToObj(e->(char)e) .collect(Collectors.toSet()); int result = 0; for(Character stone : stones.toCharArray()){ if(jewel.contains(stone)){..