전체 글

전체 글

    [백준]1158번 요세푸스 문제 - Java

    [백준]1158번 요세푸스 문제 - Java

    문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 1. 큐에 순서대로 삽입 2. flag라는 변수를 사용해 3일때마다 번호를 제거 3. 제거 후에 flag를 0으로 초기화 4. 큐의 사이즈가 0이 될 때까지 반복 코드 // 1158번 요세푸스 문제 // https://www.acmicpc.net/problem/1158 package BAEKJOON; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Sc..

    [Java]배열의 복사(1차원 배열의 복사)

    [Java]배열의 복사(1차원 배열의 복사)

    얕은 복사 public class Array_Copy{ public static void main(String[] args) { int[] a = { 1, 2, 3, 4 }; int[] b = a; } } = 연산자는 주소를 이어준다는 의미임. 해당 코드로 a의 배열을 b배열로 = 연산자를 활용하여 대입하면 깊은 복사가 되지 않고 얕은 복사가 됨. 그렇기에 b배열의 값을 수정하여도 a배열까지 같이 수정되어버리는 상황이 나옴. 이렇게 되면 사실상 배열을 복사하는 의미가 없음. 깊은 복사 public class Array_Copy{ public static void main(String[] args) { int[] a = { 1, 2, 3, 4 }; int[] b = new int[a.length]; for..

    [Java]문자열 비교하기 == 와 equals()의 차이점

    [Java]문자열 비교하기 == 와 equals()의 차이점

    문자열 비교하기 == 와 equals()의 차이점 문자열 비교하기 == 와 equals()의 차이점 자바에서 일반적인 데이터 타입의 비교는 `==` 라는 연산자를 사용하여 비교함. 하지만 String 문자열의 값을 비교할 때에는 `equals()` 라는 메서드를 사용하여 비교함. `==` 연산자 public class compare { public static void main(String[] args) { String s1 = "abcd"; String s2 = new String("abcd"); if(s1 == s2) { System.out.println("두 개의 값이 같습니다."); }else { System.out.println("두 개의 값이 같지 않습니다."); } } } 결과: "두 개의 ..