📑 1. 문제설명 입출력 예 설명입출력 예 #129183에서 1은 3번째에 있습니다.입출력 예 #2232443에서 4는 4번째에 처음 등장합니다.입출력 예 #3 123456에 7은 없으므로 -1을 return 합니다.💡 2. 풀이과정목표는 정수 num에서 숫자 k와 같은 자릿수를 찾아 1-based 인덱스를 반환하는 것이다. class Solution { public int solution(int num, int k) { String numToString = Integer.toString(num); char[] arr = numToString.toCharArray(); char kToChar = (char) (k + '0'); int idx = ..

My Tech Blog (Java)

1. JVM (Java Virtual Machine) 이란?JVM은 OS를 대신해서 컴파일된 자바 바이트 코드를 실행하는 가상의 운영체제이다. 즉, OS에 종속받지 않고 CPU가 JAVA를 인식, 실행할 수 있게 하는 가상 컴퓨터이다.JVM에 의해 JAVA는 '운영체제에 독립적'이라는 장점을 가진다. JVM은 자바 언어에서만 사용하는 것이 아니다. 코틀린, 스칼라 언어에서도 JVM 동작 방식을 그대로 따른다.JVM의 역할은 자바 애플리케이션을 클래스 로더를 통해 읽어 자바 API와 함께 실행하는 것이다. 2. 자바 코드가 컴파일 되는 과정위의 동작처럼 Java 소스코드, 즉 원시코드(*.java)는 CPU가 인식을 하지 못하므로 기계어로 컴파일을 해줘야 한다.이 때, Java는 이 JVM 이라는 가상머..

🍩 용어 정리JDK : Java Development Kitbin : binary폴더. 보통 실행파일을 bin이라고 함Java.exe : cmd에 java라고 치면 실행되는 파일javac.exe : cmd에 javac라고 치면 실행되는 파일. java파일을 컴파일하여 class파일로 만들 때 사용한다.💡 "javac"는 "java" (자바) + "c" (씨) = "자바 씨"풀어서 말하면 "Java Compiler"의 약자라서, 자연스럽게 "자바 씨"라고 부른다. 🚀 Java라고 명령을 내렸을 때 일어나는 일✅ java 파일이 어디서든 실행되는 이유👉 환경변수(Path) 덕분! `Path` : 명령어(java, javac 등)를 어디서든 찾을 수 있게 해주는 환경변수. 설정 방법 :내 컴퓨터 →..

자바가 자바 가상 머신(JVM) 위에서 실행된다는 것은 익히 알려진 사실이다. 이클립스를 다운로드할 때는 이클립스 버전에 호환되는 JDK도 함께 설치한다.또한, 이클립스 설정에서 [Installed JREs]에서 JRE를 추가하면서, 기존에 두루뭉술하게 알고 있던 JDK와 JRE의 차이가 궁금해졌다.그래서 오늘은 개념을 명확히 정리해보고자 한다. 1. JDK vs JRE vs JVM 차이진짜 간단히 요약하면 자바로 개발할 때 → JDK 필요 (컴파일러 포함)그냥 실행만 할 때 → JRE만 있어도 됨실제 실행 담당 → JVM 위에서 돌아감... JRE는 실행용, JDK는 개발용이라고 이해하면 쉽다. ■ JDK (Java Development Kit)`.java` 파일을 `.class(바이트코드)`로 ..
📑 1. 문제설명 💡 2. 풀이과정처음에는 3,6,9 게임을 잘못 이해했다.3의 배수일 때 박수 치는 걸로 이해해서 해당 숫자를 3으로 나눈 나머지가 0일 때 cnt ++을 하는 실수를 했다. 하지만 오리지널 369게임은 숫자 3, 6, 9가 들어가면 박수를 치는 게임이다. 즉, 숫자 하나 하나가 3 또는 6 또는 9 값을 가지면 횟수를 카운트하고 마지막에 총 횟수를 리턴한다. 주어진 숫자를 문자열로 바꿔서 각 자릿수를 탐색해도 되지만이 문제에서 어차피 숫자의 순서는 상관 없고주어진 order 안에서 3, 6, 9가 총 몇개인지 갯수면 세면 되는 문제이기 때문에주어진 숫자를 10으로 나눈 나머지가 3,6,9에 해당하는지만 확인하면 쉽게 풀 수 있다. 1. 주어진 숫자(order)를 10으로 나눈 나머..
📑 1. 문제설명💡 2. 풀이과정 n과 가장 가까운 수를 구하려면 n에서 해당 요소를 뺀 값이 제일 작아야 한다고생각했다.즉 `n - array[i]` 의 절대값이 0이거나 가장 작은 것을 구하는 접근 방식을 취했다. 처음에는 n - array[i] 이 현재 min 에 저장된 최소값보다 작으면최소값을 min에, 해당 요소의 배열 index를 answer 변수에 업데이트 하는 방식으로 풀었다.하지만 코드가 예상대로 돌아가지 않았다.import java.util.Arrays;class Solution { public int solution(int[] array, int n) { int min = Math.abs(n - array[0]); int answer =..
📑 1. 문제설명 입출력 예 설명입출력 예 #1["We", "are", "the", "world!"]의 각 원소의 길이인 [2, 3, 3, 6]을 return합니다.입출력 예 #2["I", "Love", "Programmers."]의 각 원소의 길이인 [1, 4, 12]을 return합니다.💡 2. 풀이과정✔️ 해결방법매개변수로 받은 strlist의 길이만큼 결과값을 담을 배열(lengths)을 하나 선언 해 준다.그리고 반복문을 돌려가며strlist각 요소(문자열)의 길이를 구해서 배열(lengths)에 담아 리턴한다. ✔️ length()와 length의 차이만 알면 쉬운 문제`length` 는배열에서 사용 되고, `legnth();`는 문자열에서 사용된다. 2-1. lengthlength는 배열..
📑 1. 문제설명💡 2. 풀이과정처음에 접근한 방식1. my_string을 toCharArray()로 char 타입의 배열로 변환2. for 문으로 배열 요소를 순회하면서 `Character.isDigit(c)` 메서드로 요소가 숫자이면 count++3. 2에서 나온 count 크기만큼의 int 배열을 선언한다. 4. for each문으로 다시 한 번 배열을 순회하면서 `Integer.parseInt(String.valueOf(c));` 로 숫자만 int 배열에 추가5. 오름차순 정렬 ⭐`Character.isDigit()`는 주어진 문자가 숫자(0~9)인지 확인하는 자바 메서드특정 문자가 숫자인지 아닌지를 판단하여, 숫자이면 true를 반환하고, 숫자가 아니면 false를 반환한다.⭐ `Inte..