til 7

chapter 3) 연산자 Operator

📍 정수 나눗셈에서 소수점을 얻고 싶다면? 자바에서 10 / 4는 두 피연산자가 모두 정수(int)이므로 결과도 정수로 계산되어 2가 출력된다.System.out.println(10 / 4); // 2소수점까지 포함된 결과를 얻고 싶다면 한쪽 이상을 실수형으로 변환해야 한다.System.out.println((double) 10 / 4); // 2.5System.out.println(10 / 4.0); // 2.5연산에 실수형이 포함되면 자바는 나머지 피연산자도 실수형으로 변환하여 계산하므로 2.5라는 결과를 얻을 수 있다.📍 오버플로우가 발생한 후에 long에 저장해도 소용없는 이유 long wrong = 1000000 * 1000000; // int * int → int 연산l..

[TIL] for문 안에 if문이 많으면 비효율적인 걸까?

코딩테스트 문제를 풀다가 약수를 구하는 문제를 접했다.처음에는 다음과 같은 코드가 더 효율적이라고 생각했다.for(int i = 1; i 반복문 안에 if가 하나밖에 없기 때문이다.반면, 제곱근을 이용한 풀이를 보면 다음과 같은 구조가 나온다.for(int i = 1; i 반복문 안에 if가 두 개나 들어가 있으니 처음에는 오히려 더 비효율적인 코드가 아닐까 하는 의문이 들었다.하지만 시간복잡도를 공부하면서 중요한 사실을 알게 되었다.시간복잡도는 if문의 개수가 아니라 반복문의 횟수가 결정한다예를 들어 다음 코드를 보자.for(int i = 1; i 이 코드는 약 100만 번 반복된다.반면,for(int i = 1; i 이 코드는 if가 두 개 있지만 실제 검사 횟수는 약 2000번 정도이다.100만 번..

TIL 2026.06.06

chapter 2-1) 변수 variable

📍 이름 규칙 클래스 이름의 첫 글자는 항상 대문자로 한다.여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.📍 char형 알아보기 1. char는 문자인가 숫자인가?우리는 보통 이렇게 생각한다.char ch = 'A';'A' = 문자하지만 컴퓨터는 문자를 직접 저장하지 못한다.컴퓨터는 숫자만 저장할 수 있다.그래서 내부적으로는'A' → 65'B' → 66'C' → 67이런 식으로 저장한다.이 숫자를 문자 코드라고 한다.2. 실제로 출력해보자어떤 문자의 유니코드를 알고 싶으면, char형 변수에 저장된 값을 정수형(int)형으로 변환하면 된다.public class Main { public static void main(String[] args) { char ch = ..

chapter 2-2) 자주 사용되는 타입 간의 변환

1. 숫자를 문자로 변환➡️ 숫자에 '0'을 더한다.(char)(3 + '0') ➡️ '3' 2. 문자를 숫자로 변환 ➡️ 문자에서 '0'을 뺀다.'3' - '0' ➡️ 3 3. 숫자를 문자열로 변환➡️ 숫자에 빈 문자열("")을 더한다.3 + "" ➡️ "3" 4. 문자열을 숫자로 변환➡️ Integer.parseInt(), Double.parseDouble()을 사용한다.Integer.parseInt("3") ➡️ 3Double.parseDouble("3.14") ➡️ 3.14 5. 문자열을 문자로 변환 ➡️ charAt(0)을 사용한다."3".charAt(0) ➡️ '3' 6. 문자를 문자열로 변환➡️ 빈 문자열("")을 더한다.'3' + "" ➡️ "3"

[TIL] 문자열에서 숫자를 추출하고 int로 변환하는 방법

오늘 프로그래머스 문제 [문자열 정렬하기1]를 풀면서 문자열 안에 있는 숫자만 추출하여 정렬하는 문제를 접했다.처음에는 문자열에서 숫자를 어떻게 판별하고, 또 어떻게 실제 숫자(int)로 변환해야 하는지 감이 잘 오지 않았다. 그런데 아래 코드가 굉장히 인상적이었다.if(c >= '0' && c 처음 봤을 때는 단순한 조건문처럼 보였지만, 실제로는 문자(Character)를 숫자(Integer)로 변환하는 중요한 아이디어가 담겨 있었다.1. 문자도 결국 숫자다Java의 char는 내부적으로 문자 자체를 저장하는 것이 아니라 유니코드(Unicode) 값을 저장한다.예를 들어 다음과 같은 값을 가진다.'0' = 48'1' = 49'2' = 50...'9' = 57따라서c >= '0' && c 라는 조건은48..

TIL 2026.06.02

[TIL] 코딩테스트에서 Arrays 클래스가 중요한 이유

코딩테스트를 풀다 보니 Arrays 클래스가 정말 자주 등장한다는 걸 느꼈다.처음에는 단순히 배열을 출력할 때만 사용하는 줄 알았는데, 실제로는:정렬배열 비교배열 복사이분탐색등 다양한 기능을 제공하는 유틸 클래스였다.사용하기 위해서는 아래 import가 필요하다.import java.util.Arrays;가장 많이 사용하는 메서드들1. Arrays.sort()배열 정렬.Arrays.sort(arr);코딩테스트에서 가장 자주 보는 메서드 중 하나였다.2. Arrays.toString()배열 출력.System.out.println(Arrays.toString(arr));디버깅할 때 굉장히 편하다.3. Arrays.fill()배열 전체를 특정 값으로 초기화.Arrays.fill(arr, -1);4. Array..

TIL 2026.05.28

[TIL] 코딩테스트를 풀다가 StringBuilder의 필요성을 직접 체감하다.

오늘 코딩테스트 문제를 풀다가 문자열을 뒤집는 문제를 만났다.바로 아래의 코드는 내가 작성한 방식이다.class Solution { public String solution(String my_string) { String answer = ""; for (int i = my_string.length() - 1; i >= 0; i--) { answer += my_string.charAt(i); } return answer; }}물론 이 방식도 동작은 한다.하지만 다른 사람들의 풀이를 보니 대부분 StringBuilder의 reverse() 메서드를 사용하고 있었다.class Solution { public String so..

TIL 2026.05.27