Java(17)
-
[Java] 특별한 이차원 배열1
문제 설명정수 n이 매개변수로 주어질 때, 다음과 같은 n × n 크기의 이차원 배열 arr를 return 하는 solution 함수를 작성해 주세요.arr[i][j] (0 ≤ i, j n)의 값은 i = j라면 1, 아니라면 0입니다.내코드class Solution { public int[][] solution(int n) { int[][] answer = new int[n][n]; for(int i=0; i답은 맞았지만 정말 기본적인 부분을 놓치고 있었음Java에서 int[]나 int[][] 같은 기본형 배열은 자동으로 0으로 초기화 즉 new int[5] 는 {0,0,0,0,0}로 셋팅이 된다. 그렇다면 for문을 1번만 돌려도 됬었다는 얘기내 코드에서는 else 분..
2025.10.14 -
[Java] HashSet
HashSet이란Set 인터페이스의 구현체중복을 허용하지 않고, 순서를 보장하지 않는 집합 자료구조내부적으로 HashMap을 이용하여 구현됨HashSet의 내부 동작 원리HashSet은 내부적으로 HashMap을 이용해서 동작한다. HashSet에 값을 추가하면 → 그 값이 HashMap의 key로 들어가는 형태.해시 함수데이터를 넣을 때 해시 함수를 통해 해시 값을 계산 -> 이 해 시값을 이용해 데이터 저장 버킷(bucket) 위치 결정set.add("apple");//"apple"의 해시코드 계산 -> 특정 버킷에 저장충돌 처리서로 다른 값이 같은 해시값 가질 가능성 -> 같은 버킷 안 연결 리스트( or 트리 구조)에 이어 저장조회 속도 빠른 이유배열(int[]나 ArrayList)에서 conta..
2025.10.10 -
[Java] .equals()와 ==의 차이
== 연산자구분종류비교 특징기본형byte, short, int, long, float, double, char, boolean값 비교값 자체를 저장, 객체가 아님참조형String, 배열(int[]), 클래스 객체 등주소 비교실제 값은 힙에 저장, 변수는 객체 주소를 가짐//기본형int a = 5;int b = 5;System.out.println(a == b); // true (값 비교)//참조형String s1 = new String("hello");String s2 = new String("hello");System.out.println(s1 == s2); // false (서로 다른 객체).equals() 메소드객체의 내용 자체를 비교대부분의 클래스(String, Integer 등)는 equals(..
2025.10.03 -
[Java] 타입 변환 (int, double, char, String)
String s = "123";int n = Integer.parseInt(s); // int 변환double d = Double.parseDouble(s); // double 변환개념 형변환(Casting)이란 데이터 타입을 다른 타입으로 바꾸는 것을 의미한다.Java는 강타입 언어로 타입이 다르면 연산, 대입이 불가능하기때문에 형변환을 반드시 해주어야한다.종류자동 형변환(묵시적)작은 타입 → 큰 타입으로 자동 변환데이터 손실 가능성이 없는 경우에만 가능int n = 10;double d = n; // 자동으로 int → doubleSystem.out.println(d); // 10.0byte → short → int → long → float → double강제 형변환(명시적)큰 타입 → 작..
2025.10.02 -
[Error] error: bad operand types for binary operator
문제int angle = 45;if (0 if문에 정수 초과 정수 미만인 조건을 추가하려다 에러가 났다. 자바는 파이썬과 다르게 논리 연산자를 분리해서 사용해야 한다. 위에 조건은 자바에서 다음과 같이 해석한다.(0 0 boolean 해결int angle = 45;if (0 각각 비교하고 AND로 연결해주면 끝!
2025.10.01 -
[Java] for문과 향상된 for문
for문for (초기식; 조건식; 증감식) { // 반복 실행할 코드}for문 안의 조건을 살펴보면 초기식반복문이 시작할 때 한 번만 실행됨.예: int i = 0; → i를 0으로 시작.조건식반복을 계속할지 결정하는 부분.true면 반복 실행, false면 반복 종료.예: i 증감식한 번 반복이 끝날 때마다 실행됨.예: i++ → i를 1씩 증가.int[] arr = {1, 2, 3, 4, 5};int sum = 0;for (int i = 0; i 특징 인덱스를 직접 제어할 수 있음 (i)배열이나 리스트의 특정 위치 접근 가능반복 조건과 증감식을 자유롭게 조절 가능조금 더 유연하지만 코드가 길어짐 향상된 for문 (Enhanced for loop, for-each문)int[] arr = {1, ..
2025.09.30 -
[Java] Java 문자열 String / StringBuilder
문자열 Hello에 World를 추가하려면 어떻게 해야할까?String가장 쉬운 방법은 연산자를 사용해 합치는 방법이 있을 것이다.String str = "Hello";str += "World"; // "Hello World" 문자열을 추가해서 Hello World를 완성했다.연산(+, replace, substring)을 사용해 문자열을 바꾼것 처럼 보이지만 사실 새로운 문자열 객체를 생성한 것이다.String은 한 번 만들어진 문자열은 바뀌지 않는 불변(immutable) 객체이다.그렇기 때문에 문자열을 자주 수정하는 경우 성능이 떨어진다. 주요 메서드 char charAt(int index) : 특정 위치 문자 반환int length() : 문자열 길이boolean equals(Object obj)..
2025.09.29