자바기초
-
2021-02-07 자바에는 열거형이라는 enum이라는 것이 있다. 이는 자바의 3 요소로 불리기도 한다. ( class / Interface / enum) 오늘은 이 enum을 만드는 방법을 간단히 알아보도록 하자. (기준은 eclipse로 설명하겠다.) enum 만들기 만드는 방법은 간단하다. 기존의 class와 interface를 만들듯이 package 우클릭 - > new -> enum을 클릭해 생성하면 된다. 그러면 이제 아래와 같은 창이 뜨게되는데, 웬만해서는 그냥 default로 두고 Name만 설정해 준 뒤, Finish 버튼을 눌러 주면 된다. enum 선언하기 사실 모양은 class와 interface와는 다른 점이 없다. 다만 enum의 주요목적은 상직적인 의미를 가지는 상수를 선언해..
[Java] enum 열거형(타입) 생성과 사용법 알아보기.2021-02-07 자바에는 열거형이라는 enum이라는 것이 있다. 이는 자바의 3 요소로 불리기도 한다. ( class / Interface / enum) 오늘은 이 enum을 만드는 방법을 간단히 알아보도록 하자. (기준은 eclipse로 설명하겠다.) enum 만들기 만드는 방법은 간단하다. 기존의 class와 interface를 만들듯이 package 우클릭 - > new -> enum을 클릭해 생성하면 된다. 그러면 이제 아래와 같은 창이 뜨게되는데, 웬만해서는 그냥 default로 두고 Name만 설정해 준 뒤, Finish 버튼을 눌러 주면 된다. enum 선언하기 사실 모양은 class와 interface와는 다른 점이 없다. 다만 enum의 주요목적은 상직적인 의미를 가지는 상수를 선언해..
2021.02.07 -
2021-02-05 어노테이션의 선언 중 @Target이라는 기능이 있다. 이는 해당 사용자가 만든 어노테이션이 부착될 수 있는 타입을 지정하는 것이다. (타입이란? -> 클래스 / 생성자 / 메서드 등등...) 오늘은 이 @Target을 지정하는 방법을 알아보도록 하자. - 어노테이션 선언코드 package aAnotation.Target; import java.lang.annotation.ElementType; import java.lang.annotation.Target; @Target({ElementType.TYPE, ElementType.CONSTRUCTOR, //}) ElementType.METHOD, ElementType.FIELD}) // Target의 기능은 어노테이션을 붙일 수 있는 대..
[Java] 자바 어노테이션 Annotation @Target 알아보기.2021-02-05 어노테이션의 선언 중 @Target이라는 기능이 있다. 이는 해당 사용자가 만든 어노테이션이 부착될 수 있는 타입을 지정하는 것이다. (타입이란? -> 클래스 / 생성자 / 메서드 등등...) 오늘은 이 @Target을 지정하는 방법을 알아보도록 하자. - 어노테이션 선언코드 package aAnotation.Target; import java.lang.annotation.ElementType; import java.lang.annotation.Target; @Target({ElementType.TYPE, ElementType.CONSTRUCTOR, //}) ElementType.METHOD, ElementType.FIELD}) // Target의 기능은 어노테이션을 붙일 수 있는 대..
2021.02.05 -
2021-02-03 자바에서 배열 사용간 배열 내부의 데이터들의 중복된 값을 제거하고 싶을 수가 있다. 이러한 경우에서의 해결방법을 알아보자. 1. Set 컬렉션 사용 package ArraysOverlap; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.stream.Stream; public class main { public static void main(String[] args) { //방법 1. int [] arr = {1,1,1,2,3,4,5,5,5,6,7}; //중복된 값을 다수 가지는 int 배열 선언 Set set = new HashSet(); // set의 자료 구조를 사..
[Java] 자바 배열 중복값(Overlap) 제거 / 처리/ 방법 알아보기.2021-02-03 자바에서 배열 사용간 배열 내부의 데이터들의 중복된 값을 제거하고 싶을 수가 있다. 이러한 경우에서의 해결방법을 알아보자. 1. Set 컬렉션 사용 package ArraysOverlap; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.stream.Stream; public class main { public static void main(String[] args) { //방법 1. int [] arr = {1,1,1,2,3,4,5,5,5,6,7}; //중복된 값을 다수 가지는 int 배열 선언 Set set = new HashSet(); // set의 자료 구조를 사..
2021.02.03 -
2021-02-01 문제 항승이는 품질이 심각하게 나쁜 수도 파이프 회사의 수리공이다. 항승이는 세준 지하철 공사에서 물이 샌다는 소식을 듣고 수리를 하러 갔다. 파이프에서 물이 새는 곳은 신기하게도 가장 왼쪽에서 정수만큼 떨어진 거리만 물이 샌다. 항승이는 길이가 L인 테이프를 무한개 가지고 있다. 항승이는 테이프를 이용해서 물을 막으려고 한다. 항승이는 항상 물을 막을 때, 적어도 그 위치의 좌우 0.5만큼 간격을 줘야 물이 다시는 안 샌다고 생각한다. 물이 새는 곳의 위치와, 항승이가 가지고 있는 테이프의 길이 L이 주어졌을 때, 항승이가 필요한 테이프의 최소 개수를 구하는 프로그램을 작성하시오. 테이프를 자를 수 없고, 테이프를 겹쳐서 붙이는 것도 가능하다. 입력 첫째 줄에 물이 새는 곳의 개수 ..
백준 BaekJoon 1449번: 수리공 항승 [Java]2021-02-01 문제 항승이는 품질이 심각하게 나쁜 수도 파이프 회사의 수리공이다. 항승이는 세준 지하철 공사에서 물이 샌다는 소식을 듣고 수리를 하러 갔다. 파이프에서 물이 새는 곳은 신기하게도 가장 왼쪽에서 정수만큼 떨어진 거리만 물이 샌다. 항승이는 길이가 L인 테이프를 무한개 가지고 있다. 항승이는 테이프를 이용해서 물을 막으려고 한다. 항승이는 항상 물을 막을 때, 적어도 그 위치의 좌우 0.5만큼 간격을 줘야 물이 다시는 안 샌다고 생각한다. 물이 새는 곳의 위치와, 항승이가 가지고 있는 테이프의 길이 L이 주어졌을 때, 항승이가 필요한 테이프의 최소 개수를 구하는 프로그램을 작성하시오. 테이프를 자를 수 없고, 테이프를 겹쳐서 붙이는 것도 가능하다. 입력 첫째 줄에 물이 새는 곳의 개수 ..
2021.02.01 -
2021-01-24 간혹 문자열에 불필요한 공백이 들어가는 경우가 있는데 이와 같은 경우는 어떻게 처리할까? 물론 변수에 다시 데이터를 입력해주는 방법도 있겠지만, 문자열 데이터가 긴 경우에는 해당 작업이 귀찮아질 수가 있다. 이를 위해서 String에서는 trim이라는 메서드를 제공하는데, 이와 같은 메서드를 사용하는 방법을 알아보자. package String_trim; public class main { public static void main(String[] args) { //문자열의 불필요한 공백을 제거하는 메서드를 알아보자. String a = " Hi Hi Hi!"; String b = "Hi Hi Hi! "; String c = " 안녕하세요 ~! "; // 각 변수별 a는 앞에 불필요한..
[Java] 자바 String 문자열 불필요한 공백 제거하는 법 trim();2021-01-24 간혹 문자열에 불필요한 공백이 들어가는 경우가 있는데 이와 같은 경우는 어떻게 처리할까? 물론 변수에 다시 데이터를 입력해주는 방법도 있겠지만, 문자열 데이터가 긴 경우에는 해당 작업이 귀찮아질 수가 있다. 이를 위해서 String에서는 trim이라는 메서드를 제공하는데, 이와 같은 메서드를 사용하는 방법을 알아보자. package String_trim; public class main { public static void main(String[] args) { //문자열의 불필요한 공백을 제거하는 메서드를 알아보자. String a = " Hi Hi Hi!"; String b = "Hi Hi Hi! "; String c = " 안녕하세요 ~! "; // 각 변수별 a는 앞에 불필요한..
2021.01.24 -
2020-12-27 오늘은 Object 클래스의 속하는 compare 메서드와 Comparator 인터페이스를 알아보도록 하자. 우선 Comparator는 Object의 compare을 재정의해야 사용할 수 있다. 즉 개발자가 원하는 기준으로 데이터를 오버 라이딩을 통해 자유롭게 비교할 수 있도록 도와준다. 우선 Comparator의 구현클래스를 하나 만들어 주었다. package tObject; import java.util.Comparator; public class compare implements Comparator{ private int num; public void setNum(int num) { this.num = num; } public int getNum() { return num; } ..
[Java] Comparator/ compare 에 대하여 알아보자!2020-12-27 오늘은 Object 클래스의 속하는 compare 메서드와 Comparator 인터페이스를 알아보도록 하자. 우선 Comparator는 Object의 compare을 재정의해야 사용할 수 있다. 즉 개발자가 원하는 기준으로 데이터를 오버 라이딩을 통해 자유롭게 비교할 수 있도록 도와준다. 우선 Comparator의 구현클래스를 하나 만들어 주었다. package tObject; import java.util.Comparator; public class compare implements Comparator{ private int num; public void setNum(int num) { this.num = num; } public int getNum() { return num; } ..
2020.12.27 -
2020-12-12 자바의 특징 중 하나는 자동으로 참조하지 않는 배열이나 객체를 Garbage Collector를 사용해 힙 영역에서 제거시킨다. 이러한 기능을 수행하는 메서드가 바로 finalize()이다. 자동으로 실행되는 해당 메서드를 사용자가 원할 경우 직접 오버 라이딩하여 사용할 수 있는데, 이와 같은 방법을 알아보도록 하자. package Finalize; public class check { private int checkNum; public check(int checkNum) { this.checkNum =checkNum; } @Override protected void finalize() throws Throwable { System.out.println(checkNum + "에 있는 ..
[Java] 자바 finalize() 소멸자 메서드 알아보자!2020-12-12 자바의 특징 중 하나는 자동으로 참조하지 않는 배열이나 객체를 Garbage Collector를 사용해 힙 영역에서 제거시킨다. 이러한 기능을 수행하는 메서드가 바로 finalize()이다. 자동으로 실행되는 해당 메서드를 사용자가 원할 경우 직접 오버 라이딩하여 사용할 수 있는데, 이와 같은 방법을 알아보도록 하자. package Finalize; public class check { private int checkNum; public check(int checkNum) { this.checkNum =checkNum; } @Override protected void finalize() throws Throwable { System.out.println(checkNum + "에 있는 ..
2020.12.12 -
2020-12-11 toString 메서드는 Object 클래스에 속해있는 메서드이다. 기능으로는 객체의 문자정보를 "Class(이름)@16진수의 해시 코드"로 Console 창에 출력하는 기능을 가지고 있다. 위의 코드는 단순하게 Object 객체를 하나 만들고 해당 객체를 toString 메서드로 출력하는 코드로 위와 같은 결과를 얻을 수 있다. 보통은 Object 자체의 메서드로는 활용하지 않고 Date 와 같은 현재의 날짜 정보를 출력할 때나 아니면, 별개의 클래스에 Override(재정의)하여 사용하곤 한다. 아래는 구체적인 예이다. 위는 Date 타입의 객체를 생성한 후 기존에 Object 클래스와 마찬가지로 출력해보았다. 결과적으로 현재의 날짜와 시간이 정상적으로 출력되는 것을 확인할 수 있..
[Java] 자바 toString() 투스트링 문자 리턴 메서드 알아보자!2020-12-11 toString 메서드는 Object 클래스에 속해있는 메서드이다. 기능으로는 객체의 문자정보를 "Class(이름)@16진수의 해시 코드"로 Console 창에 출력하는 기능을 가지고 있다. 위의 코드는 단순하게 Object 객체를 하나 만들고 해당 객체를 toString 메서드로 출력하는 코드로 위와 같은 결과를 얻을 수 있다. 보통은 Object 자체의 메서드로는 활용하지 않고 Date 와 같은 현재의 날짜 정보를 출력할 때나 아니면, 별개의 클래스에 Override(재정의)하여 사용하곤 한다. 아래는 구체적인 예이다. 위는 Date 타입의 객체를 생성한 후 기존에 Object 클래스와 마찬가지로 출력해보았다. 결과적으로 현재의 날짜와 시간이 정상적으로 출력되는 것을 확인할 수 있..
2020.12.11 -
2020-11-24 오늘은 자바라는 언어의 가장 큰 특징 객체지향 중 Getter/Setter에 대하여 알아보도록 하겠다. 우선 해당 메서드를 사용하는 이유는 필드 값에 부적절한 값이 대입되는 것을 막기 위해서이다. (물론 각 객체들의 캡슐이 깨지지 않게 하기 위함도 있다.) 글로만 봐서는 이해가 어려울 수 있으니 바로 코드를 통한 예제를 보면서 이해해 보도록 하자. 예를 들어 한 명의 게임 캐릭터가 있다. 해당 캐릭터의 힘 / 민첩 / 지능을 스탯을 배분해야 하며, 스탯은 0부터 시작하기 때문에 - 값은 들어갈 수 없다고 가정해보자. 이러한 경우 실수로 - 값을 대입할 경우, 차후 캐릭터에 문제가 생겨 버그가 발생할 수 있다. 때문에 스텟(필드)은 private로 직접적인 접근을 할 수 없도록 막고, ..
[Java] 자바 Getter/Setter 메소드(Method) 알아보기[초간단]2020-11-24 오늘은 자바라는 언어의 가장 큰 특징 객체지향 중 Getter/Setter에 대하여 알아보도록 하겠다. 우선 해당 메서드를 사용하는 이유는 필드 값에 부적절한 값이 대입되는 것을 막기 위해서이다. (물론 각 객체들의 캡슐이 깨지지 않게 하기 위함도 있다.) 글로만 봐서는 이해가 어려울 수 있으니 바로 코드를 통한 예제를 보면서 이해해 보도록 하자. 예를 들어 한 명의 게임 캐릭터가 있다. 해당 캐릭터의 힘 / 민첩 / 지능을 스탯을 배분해야 하며, 스탯은 0부터 시작하기 때문에 - 값은 들어갈 수 없다고 가정해보자. 이러한 경우 실수로 - 값을 대입할 경우, 차후 캐릭터에 문제가 생겨 버그가 발생할 수 있다. 때문에 스텟(필드)은 private로 직접적인 접근을 할 수 없도록 막고, ..
2020.11.24 -
2020-11-21 final 이름에서도 느껴지듯이 자바에서 final이 선언된 값은 프로그램 실행 도중 변경을 할 수 없다. 때문에 초기화 준 값에서 바뀌지 않는다는 것인데, 초기화 방법을 알아보자. public class tFinal { final String name = "홍길동"; //필드에서 초기화 하는 방법 final String bloodType; public tFinal(String bloodType) { this.bloodType = bloodType; } //생성자에서 초기화 하는 방법 } 위의 코드에서 볼 수 있듯이 final 을 초기화하는 방법은 필드와 생성자를 통해서만 초기화할 수 있다. 단순한 값이라면 필드에서 선언하는 것이 좋으며, 외부에서 입력받아야만 하는 값이라면, 생성자를..
[Java] 자바 final 과 static final을 알아보자!2020-11-21 final 이름에서도 느껴지듯이 자바에서 final이 선언된 값은 프로그램 실행 도중 변경을 할 수 없다. 때문에 초기화 준 값에서 바뀌지 않는다는 것인데, 초기화 방법을 알아보자. public class tFinal { final String name = "홍길동"; //필드에서 초기화 하는 방법 final String bloodType; public tFinal(String bloodType) { this.bloodType = bloodType; } //생성자에서 초기화 하는 방법 } 위의 코드에서 볼 수 있듯이 final 을 초기화하는 방법은 필드와 생성자를 통해서만 초기화할 수 있다. 단순한 값이라면 필드에서 선언하는 것이 좋으며, 외부에서 입력받아야만 하는 값이라면, 생성자를..
2020.11.21 -
2020-11-19 다수의 Overloading을 하다 보면 반복적인 this 코드를 사용하게 되는데, 이러한 불필요한 반복을 줄이는 방법을 알아보자. (예제는 전에 오버 로딩 글에서 사용하던 걸 사용하도록 하겠다.) 오버 로딩 글 링크 : seeminglyjs.tistory.com/167 public class Overloading { String name; String sex; int age; public Overloading() { } public Overloading(String name) { this.name = name; } //이름 매개변수를 받는 생성자 public Overloading(String name, String sex) { this.name = name; this.sex = se..
[Java] 자바 this 와 Overloading 중복된 코드 처리법2020-11-19 다수의 Overloading을 하다 보면 반복적인 this 코드를 사용하게 되는데, 이러한 불필요한 반복을 줄이는 방법을 알아보자. (예제는 전에 오버 로딩 글에서 사용하던 걸 사용하도록 하겠다.) 오버 로딩 글 링크 : seeminglyjs.tistory.com/167 public class Overloading { String name; String sex; int age; public Overloading() { } public Overloading(String name) { this.name = name; } //이름 매개변수를 받는 생성자 public Overloading(String name, String sex) { this.name = name; this.sex = se..
2020.11.19 -
2020-11-16 클래스에는 3가지 요소가 존재하는데, 바로 필드 / 생성자 / 메서드 가 있다. 오늘은 이 3가지 중 초기화를 담당하는 생성자의 오버 로딩에 대해서 알아보도록 하겠다. 우선 오버로딩이라는 단어의 뜻에서 유추할 수 있듯이 기존의 기본 생성자를 다양한 방법으로 객체를 생성할 수 있도록 매개변수를 달리하여, 다수의 생성자를 선언하는 것이다. ( 말이 좀 어려울 수 도 있는데, 코드를 보면 쉽게 이해할 수 있다.) public class Overloading { String name; String sex; int age; public Overloading() { } public Overloading(String name) { this.name = name; } //이름 매개변수를 받는 생성자..
[Java] 자바 생성자 Overloading(오버로딩) 알아보기2020-11-16 클래스에는 3가지 요소가 존재하는데, 바로 필드 / 생성자 / 메서드 가 있다. 오늘은 이 3가지 중 초기화를 담당하는 생성자의 오버 로딩에 대해서 알아보도록 하겠다. 우선 오버로딩이라는 단어의 뜻에서 유추할 수 있듯이 기존의 기본 생성자를 다양한 방법으로 객체를 생성할 수 있도록 매개변수를 달리하여, 다수의 생성자를 선언하는 것이다. ( 말이 좀 어려울 수 도 있는데, 코드를 보면 쉽게 이해할 수 있다.) public class Overloading { String name; String sex; int age; public Overloading() { } public Overloading(String name) { this.name = name; } //이름 매개변수를 받는 생성자..
2020.11.16 -
2020-11-10 문제 오늘은 NAVER D2 캠퍼스에서 CTP 스터디 하는날!!! 스터디 장소가 인하대학교 강의실에서 NAVER D2 캠퍼스로 바뀌었기 때문에 멀티탭 부장 준호는 스터디 전에 미리 멀티탭을 셋팅 해야 한다. CTP는 모든 사람이 사용할만큼 충분한 멀티탭을 가지고 있다. 종류는 3구부터 8구까지 다양하게 있다. 모든 사람들은 노트북만 가져오기 때문에 멀티탭 1구를 무조건 사용한다. 1구를 초과해선 안 된다. CTP에는 멀티탭에 2개이상 연속으로 코드를 꽂으면 안되는 특별한 규칙이 있다. 준호는 미리 계산을 해서 모두가 코드를 꽂을 수 있게 멀티탭을 K개 챙겨 갔다. 하지만 준호는 수학과에서 수학을 못해 전과했기 때문에 가끔 멀티탭을 적게 가지고 올 때가 있다. 수학을 더 잘하는 여러분이..
백준 BaekJoon 15780번: 멀티탭 충분하니? [Java] 자바2020-11-10 문제 오늘은 NAVER D2 캠퍼스에서 CTP 스터디 하는날!!! 스터디 장소가 인하대학교 강의실에서 NAVER D2 캠퍼스로 바뀌었기 때문에 멀티탭 부장 준호는 스터디 전에 미리 멀티탭을 셋팅 해야 한다. CTP는 모든 사람이 사용할만큼 충분한 멀티탭을 가지고 있다. 종류는 3구부터 8구까지 다양하게 있다. 모든 사람들은 노트북만 가져오기 때문에 멀티탭 1구를 무조건 사용한다. 1구를 초과해선 안 된다. CTP에는 멀티탭에 2개이상 연속으로 코드를 꽂으면 안되는 특별한 규칙이 있다. 준호는 미리 계산을 해서 모두가 코드를 꽂을 수 있게 멀티탭을 K개 챙겨 갔다. 하지만 준호는 수학과에서 수학을 못해 전과했기 때문에 가끔 멀티탭을 적게 가지고 올 때가 있다. 수학을 더 잘하는 여러분이..
2020.11.10 -
2020-11-05 싱글톤(Singleton)이란 전체 프로그램 내에서 하나의 객체만을 만드는 것을 이야기한다. 이는 싱글톤을 선언한 class 이외에 다른 곳에서 new를 이용한 새로운 생성자를 만드는 것을 제한하는 의미라고도 볼 수 있다. 싱글톤을 코드화 하기 위해서는 객체 앞에 private를 붙여 주어 선언된 class에서만 생성 가능하게 만들어 주면 된다. 구체적으로 코드로는 어떻게 선언되는지 알아보자. public class singleton { private static singleton st = new singleton(); private singleton() {} static singleton getSt() { return st; } } 위에는 싱글톤 객체를 생성하는 클래스이며, 아래는 ..
[Java] 자바 싱글톤(Singleton) 에 대하여 간단히 알아보자!2020-11-05 싱글톤(Singleton)이란 전체 프로그램 내에서 하나의 객체만을 만드는 것을 이야기한다. 이는 싱글톤을 선언한 class 이외에 다른 곳에서 new를 이용한 새로운 생성자를 만드는 것을 제한하는 의미라고도 볼 수 있다. 싱글톤을 코드화 하기 위해서는 객체 앞에 private를 붙여 주어 선언된 class에서만 생성 가능하게 만들어 주면 된다. 구체적으로 코드로는 어떻게 선언되는지 알아보자. public class singleton { private static singleton st = new singleton(); private singleton() {} static singleton getSt() { return st; } } 위에는 싱글톤 객체를 생성하는 클래스이며, 아래는 ..
2020.11.05 -
2020-11-01 단어 뜻에서도 알 수 있듯이 Infinity는 무한대라는 의미를 가지고 있고, NaN은 (Not a Number) 숫자가 아니라는 의미를 가지고 있다. 그러면 우선 어떠한 상황에서 이와 같은 결과가 나오게 되는지 알아보자. public class TemplateA { public static void main(String[] args) { double n = 10; System.out.println(n / 0.0); System.out.println(n % 0.0); } } 실수 값을 0 으로 나눈 몫의 값은 무한히 나누어질 수 있어 Colsole 창에 값이 Infinity 가 출력된 것을 확인할 수 있으며, 0으로 나눈 나머지의 값은 존재하지 않을뿐더러 숫자가 아니기 때문에, NaN..
[Java] 자바 Infinity 와 NaN 의 정의 및 확인하는 방법2020-11-01 단어 뜻에서도 알 수 있듯이 Infinity는 무한대라는 의미를 가지고 있고, NaN은 (Not a Number) 숫자가 아니라는 의미를 가지고 있다. 그러면 우선 어떠한 상황에서 이와 같은 결과가 나오게 되는지 알아보자. public class TemplateA { public static void main(String[] args) { double n = 10; System.out.println(n / 0.0); System.out.println(n % 0.0); } } 실수 값을 0 으로 나눈 몫의 값은 무한히 나누어질 수 있어 Colsole 창에 값이 Infinity 가 출력된 것을 확인할 수 있으며, 0으로 나눈 나머지의 값은 존재하지 않을뿐더러 숫자가 아니기 때문에, NaN..
2020.11.01 -
2020-10-30 문제 유진수는 어떤 수를 10진수로 표현한 뒤 그 수를 두 부분으로 나눴을 때, 앞부분 자리수의 곱과 뒷부분 자리수의 곱이 같을 때를 말한다. 예를 들어, 1221은 유진수이다. 12와 21로 나눴을 때, 앞부분 자리수의 곱 1*2는 뒷부분 자리수의 곱 2*1과 같기 때문이다. 1236도 마찬가지로 유진수이다. 하지만, 1234는 아니다. 수를 나눌 때 항상 연속된 자리수를 나눠야하고, 각 부분에 적어도 한자리는 있어야 한다. 예를 들어, 12345는 총 4가지 방법으로 나눌 수 있다. 1-2345, 12-345, 123-45, 1234-5 어떤 수 N이 주어질 때, 이 수가 유진수인지 아닌지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수 N이 주어진다. 이 수는 2,147,483..
백준 BaekJoon 1356번: 유진수 [Java] 자바2020-10-30 문제 유진수는 어떤 수를 10진수로 표현한 뒤 그 수를 두 부분으로 나눴을 때, 앞부분 자리수의 곱과 뒷부분 자리수의 곱이 같을 때를 말한다. 예를 들어, 1221은 유진수이다. 12와 21로 나눴을 때, 앞부분 자리수의 곱 1*2는 뒷부분 자리수의 곱 2*1과 같기 때문이다. 1236도 마찬가지로 유진수이다. 하지만, 1234는 아니다. 수를 나눌 때 항상 연속된 자리수를 나눠야하고, 각 부분에 적어도 한자리는 있어야 한다. 예를 들어, 12345는 총 4가지 방법으로 나눌 수 있다. 1-2345, 12-345, 123-45, 1234-5 어떤 수 N이 주어질 때, 이 수가 유진수인지 아닌지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수 N이 주어진다. 이 수는 2,147,483..
2020.10.30 -
2020-10-29 자바의 나누기 연산자는 모두가 아는 2 가지가 있으며, 하나는 몫을 저장하는 '/' 연산자 나머지를 저장하는 '%'이다. 이는 굉장히 편리하게 활용되는데, 아주 가끔 불편하게 느껴질때도 있는데, 그때가 바로 소수점까지 구해야 하는 경우이다. 지금 부터 그러한 경우의 해결방법을 알아보도록 하자. (지금부터 모든 예는 우측 예제로 들겠다. ex) 10 / 4 = 2.5) 초기 속성타입을 double를 지정한다면, 쉽게 해결된 문제이지만, int / byte / short과 같은 속성 타입을 초기에 지정했다면, 다소 난감할 수 도 있다. (다만 그렇다고 모든 변수를 double로 설정하지는 말자. 이는 int = 4byte 의 크기 이지만 double 은 8byte의 크기이기 때문에 코드양..
[Java] 자바 정수(int)를 나누어서 소수점 값 쉽게 출력하는 법2020-10-29 자바의 나누기 연산자는 모두가 아는 2 가지가 있으며, 하나는 몫을 저장하는 '/' 연산자 나머지를 저장하는 '%'이다. 이는 굉장히 편리하게 활용되는데, 아주 가끔 불편하게 느껴질때도 있는데, 그때가 바로 소수점까지 구해야 하는 경우이다. 지금 부터 그러한 경우의 해결방법을 알아보도록 하자. (지금부터 모든 예는 우측 예제로 들겠다. ex) 10 / 4 = 2.5) 초기 속성타입을 double를 지정한다면, 쉽게 해결된 문제이지만, int / byte / short과 같은 속성 타입을 초기에 지정했다면, 다소 난감할 수 도 있다. (다만 그렇다고 모든 변수를 double로 설정하지는 말자. 이는 int = 4byte 의 크기 이지만 double 은 8byte의 크기이기 때문에 코드양..
2020.10.29 -
2020-09-28 거품 정렬(Bubble sort)은 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간 복잡도가 O(n2)로 상당히 느리지만, 코드가 단순하기 때문에 자주 사용된다. 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름이다. 양방향으로 번갈아 수행하면 칵테일 정렬이 된다. 오름차순으로 정렬하는 거품정렬의 과정은 다음과 같다 출처 : 위키피디아 링크 : ko.wikipedia.org/wiki/%EA%B1%B0%ED%92%88_%EC%A0%95%EB%A0%AC 소스코드 Scanner scan = new Scanner(System.in); int [] arr = new int [10]; //정렬할 숫자가 들어갈 배열 int n = -1; //입력받을 숫자의 개수가 ..
[Java] 자바 버블 정렬 / java 버블 정렬 구현하기2020-09-28 거품 정렬(Bubble sort)은 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간 복잡도가 O(n2)로 상당히 느리지만, 코드가 단순하기 때문에 자주 사용된다. 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름이다. 양방향으로 번갈아 수행하면 칵테일 정렬이 된다. 오름차순으로 정렬하는 거품정렬의 과정은 다음과 같다 출처 : 위키피디아 링크 : ko.wikipedia.org/wiki/%EA%B1%B0%ED%92%88_%EC%A0%95%EB%A0%AC 소스코드 Scanner scan = new Scanner(System.in); int [] arr = new int [10]; //정렬할 숫자가 들어갈 배열 int n = -1; //입력받을 숫자의 개수가 ..
2020.09.28 -
2020-09-22 문제 정수 X가 주어진다. 정수 X는 항상 8진수, 10진수, 16진수 중에 하나이다. 8진수인 경우에는 수의 앞에 0이 주어지고, 16진수인 경우에는 0x가 주어진다. X를 10진수로 바꿔서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 X가 주어진다. X는 10진수로 바꿨을 때, 1,000,000보다 작거나 같은 자연수이다. 16진수인 경우 알파벳은 소문자로만 이루어져 있다. 출력 첫째 줄에 입력받은 X를 10진수로 바꿔서 출력한다. 소스코드 Scanner scan = new Scanner(System.in); String X = scan.next(); String N =""; int N8 = 0; //8진수 값이 저장될 변수 int N16 = 0; //16진수 값이 저장될 변수..
백준 BaekJoon 11816번: 8진수, 10진수 16진수 [Java] 자바2020-09-22 문제 정수 X가 주어진다. 정수 X는 항상 8진수, 10진수, 16진수 중에 하나이다. 8진수인 경우에는 수의 앞에 0이 주어지고, 16진수인 경우에는 0x가 주어진다. X를 10진수로 바꿔서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 X가 주어진다. X는 10진수로 바꿨을 때, 1,000,000보다 작거나 같은 자연수이다. 16진수인 경우 알파벳은 소문자로만 이루어져 있다. 출력 첫째 줄에 입력받은 X를 10진수로 바꿔서 출력한다. 소스코드 Scanner scan = new Scanner(System.in); String X = scan.next(); String N =""; int N8 = 0; //8진수 값이 저장될 변수 int N16 = 0; //16진수 값이 저장될 변수..
2020.09.22 -
2020-09-16 문제 어떤 파일 시스템에는 디스크 공간이 파일의 사이즈와 항상 같지는 않다. 이것은 디스크가 일정한 크기의 클러스터로 나누어져 있고, 한 클러스터는 오직 한 파일만 이용할 수 있기 때문이다. 예를 들어, 클러스터의 크기가 512바이트이고, 600바이트 파일을 저장하려고 한다면, 두 개의 클러스터에 저장하게 된다. 두 클러스터는 다른 파일과 공유할 수 없기 때문에, 디스크 사용 공간은 1024바이트가 된다. 파일의 사이즈와 클러스터의 크기가 주어질 때, 사용한 디스크 공간을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 파일의 개수 N이 주어진다. N은 1,000보다 작거나 같은 자연수이다. 둘째 줄에는 파일의 크기가 공백을 사이에 두고 하나씩 주어진다. 파일의 크기는 1,000,00..
백준 BaekJoon 1350번: 진짜 공간 [Java] 자바2020-09-16 문제 어떤 파일 시스템에는 디스크 공간이 파일의 사이즈와 항상 같지는 않다. 이것은 디스크가 일정한 크기의 클러스터로 나누어져 있고, 한 클러스터는 오직 한 파일만 이용할 수 있기 때문이다. 예를 들어, 클러스터의 크기가 512바이트이고, 600바이트 파일을 저장하려고 한다면, 두 개의 클러스터에 저장하게 된다. 두 클러스터는 다른 파일과 공유할 수 없기 때문에, 디스크 사용 공간은 1024바이트가 된다. 파일의 사이즈와 클러스터의 크기가 주어질 때, 사용한 디스크 공간을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 파일의 개수 N이 주어진다. N은 1,000보다 작거나 같은 자연수이다. 둘째 줄에는 파일의 크기가 공백을 사이에 두고 하나씩 주어진다. 파일의 크기는 1,000,00..
2020.09.16