2021-01-23 코딩을 하다 보면 다양한 형태의 변수를 문자열 형태로 바꾸어야 하는 경우가 자주 발생하게 되는데 이를 위해 String 에는 valueOf라는 메서드를 제공하고 있다. 이를 사용한 결과가 어떻게 되는지 확인해보자. package String_valueOf; import java.io.ObjectInputStream.GetField; public class main { public static void main(String[] args) { //각종 타입의 변수들을 문자열로 바꾸어보자! int numInt = 100; long numLo = 1000; double numDou = 100.100; boolean flag = true; char ch = 'A'; } } 위와 같이 서로 다른..
2021-01-22 문자열 변수를 사용하다 보면 가끔씩 해당 문자를 대문자로 바꾸어야 하거나 소문자로 바꾸어야 하는 경우가 있다. 이러한 경우 String에서는 toUpperCase/toLowerCase 메서드를 이용해 바꿀 수 있는데, 오늘은 이와 같은 방법을 알아보자. package Upper_Lower; public class main { public static void main(String[] args) { // 입력받은 문자열을 대문자로 바꾸는 방법과 // 소문자로 바꾸는 방법을 알아보자. String name1 = "AAABBB"; String name2 = "aaabbb"; String name3 = "AaaBbb"; //대문자로만 구성되어있는 변수 name1 //소문자로만 구성되어 있는 ..
2021-01-21 문제 선물 포장 공장을 말아먹은 욱제는 계곡에서 백숙을 파느라 학교에 자주 가지 못한다. 하지만 월클의 인생은 피곤한 법! 욱제는 지금처럼 힘든 시기에도 자신을 기다리는 5조5억명의 열렬한 팬들을 위해 가끔씩 학교에 가 줘야 한다. 욱제는 백숙이 끓는 걸 지켜봐야 해서 가게를 오래 비울 수 없다. 그래서 욱제는 한 번 학교에 간 뒤 최소 시간동안 머물다가 모든 팬들과 한 번씩 인사를 하고 학교를 떠나려고 한다. 욱제는 임의의 시각에 학교에 오거나 학교를 떠날 수 있고, 단 한 번의 왕복만 한다. 동시에 여러 팬들에게 인사를 끝낼 수도 있다. 욱제는 잘생겨서 인사하면 팬들이 심쿵사로 바로 쓰러지기 때문에 인사를 하는데 소요되는 시간은 0이라고 하자. 예를 들어 3명의 팬 A, B, C가..
2021-01-20 전 글에서 얇은 복제는 단순한 필드 값을 복사할 때만 사용하는 것이 좋으며, 그 이유는 참조 타입을 얇은 복제 시 같은 참조 번지도 같이 복사되기 때문에 복사된 클래스를 변경하면 원본 객체도 변경되게 된다고 했다. 오늘은 이제 이를 해결하는 방법인 DeepClone를 알아보도록 하자. 얇은 복제가 궁금하면 아래 글을 확인하자. seeminglyjs.tistory.com/232 아래는 참조할 클래스 Student이며 필드로는 학년이 들어갈 grade만 있다. package dDeepClone; public class Student { int grade; public Student(int grade) { this.grade = grade; // 학생의 학년을 초기화 해줌 } } 다음은 D..
2021-01-19 기존에 변수나 배열과 같은 경우에는 새로운 객체를 만들어서 복사를 진행하면 된다. 그러면 클래스를 복사해서 사용하고자 하면 어떻게 해야 할까? ctrl + c -> ctrl + v를 사용해서 새로운 클래스를 만들어 사용하면 될까?라고 생각할 수 도 있지만 자바 자체에서 이와 같은 고민을 해결해주기 위해 Cloneable이라는 인터페이스를 제공한다. 즉 복사를 하고자 하는 클래스에 implements Cloneable를 붙여주면 이와 같은 클래스를 사용할 수 있다. 바로 코드를 살펴보자. package tThinClone.copy; import java.util.Arrays; public class People implements Cloneable { String name; int ag..
2021-01-18 문제 방탈출 게임을 하던 혜민이는 마지막 문제에 봉착했다. 단서는 다음과 같다. 앞에는 일렬로 놓여진 N개의 버튼이 모두 불이 꺼진 상태로 있다. 0 또는 1로 구성되어 있는 N자리 수가 적힌 쪽지가 있다. 0은 불이 꺼진 버튼, 1은 불이 켜진 버튼을 뜻한다. 불이 켜져 있는 버튼을 누르면 불이 꺼지고, 불이 꺼져 있는 버튼을 누르면 불이 켜진다. 버튼을 누르면 그 버튼 뿐만이 아닌 오른쪽 두 개의 버튼도 같이 눌린다. 혜민이는 현재 모두 불이 꺼진 상태에서 버튼을 최소로 눌러서 쪽지와 똑같은 상태로 만들어야 한다는 것을 알아냈다! 혜민이를 도와줘서 방탈출 게임에 성공하자. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000)가 주어지고 둘째 줄에는 쪽지에 적혀 있는 N자리의 수가 ..