분류 전체보기(84)
-
[Java] 배열 만들기 4
문제 설명정수 배열 arr가 주어집니다. arr를 이용해 새로운 배열 stk를 만드려고 합니다.변수 i를 만들어 초기값을 0으로 설정한 후 i가 arr의 길이보다 작으면 다음 작업을 반복합니다.만약 stk가 빈 배열이라면 arr[i]를 stk에 추가하고 i에 1을 더합니다.stk에 원소가 있고, stk의 마지막 원소가 arr[i]보다 작으면 arr[i]를 stk의 뒤에 추가하고 i에 1을 더합니다.stk에 원소가 있는데 stk의 마지막 원소가 arr[i]보다 크거나 같으면 stk의 마지막 원소를 stk에서 제거합니다.위 작업을 마친 후 만들어진 stk를 return 하는 solution 함수를 완성해 주세요.Pseudo Code 초기화stk → 결과 배열idx → arr 순회 인덱스반복 조건idx 조건 ..
2025.10.15 -
[Java] 타입 변환 (Array ↔ Array/List/String)
int[ ] Integer [ ]int[ ] -> Integer [ ]int[] arr = {1, 2, 3};Integer[] objArr = Arrays.stream(arr) .boxed() .toArray(Integer[]::new);Arrays.stream(intArr) → IntStream 생성.boxed() → int → Integer 변환 (int 값을 Integer 객체로 감싸서 객체 배열 생성).toArray(Integer[]::new) → 최종 Integer[] 배열 생성Integer [ ]-> int[ ] Integer[] wrapperArr = {1, 2, 3};// Stream ..
2025.10.14 -
[Java] Java 메서드(Method) 와 객체화
메서드(Method)기능 단위로 묶인 코드 블록입력(매개변수) -> 처리(작성된 로직) -> 출력(리턴값) 객체지향에서 객체의 행동을 정의한가지 기능만 수행반복되는 코드는 메서드로 분리기본 구조[접근제어자] [리턴타입] 메서드이름([매개변수]) { // 수행할 코드 return 값; // 리턴 필요 시}public int add(int a, int b) { return a + b;} 접근제어자: public, private, protected, 생략(default)리턴타입: 반환값 자료형, 없으면 voidpublic void printHello() { System.out.println("Hello!");}매개변수: 타입과 변수명 필수접근 제어자 범위public → 어디서나 ..
2025.10.14 -
[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 -
[Error] incompatible types: Object[] cannot be converted to String[]
ArrayList 타입을 String[] 배열로 변환해 리턴하는 과정해서 발생했다. import java.util.*;class Solution { public String[] solution(String[] strArr) { ArrayList answer = new ArrayList(); for (String str : strArr) { if (!str.contains("ab")) { answer.add(str); } } // !!문제 구간!! ArrayList -> String 배열 변환 String[] str_arr = answer.toArray(); r..
2025.10.13 -
[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