Blog blog = new Korea()

java 14

[백준] 2750 수 정렬하기

최근 정렬 알고리즘 공부를 하고 있겠다.. 간단한 정렬 문제를 시도했다.계수정렬로 시도해볼까 하다가, 단순히 연결되는 수에 대한 정렬이 아니라 임의로 들어오는 수들에 대해서 정렬을 해야해서 그냥 일반적인 정렬로 풀었다.중간에 ‘수는 중복되지 않는다’ 라는 말을 중복된 수는 제거하라는 말인줄 알아서.. 중복을 제거하는 걸 고민했었더랬다…Python사실 아래처럼 푸는 거보다 그냥 sort 메소드가 있는 패키지를 이용하는게 빠르긴 하다. 그냥 정렬 구현을 위해 풀어봤다.N = int(input())T = set([])data = []def dataSort(a, b): if(data[a] > data[b]): temp = data[a] data[a] = data[b] ..

알고리즘 2025.05.01

[Java] 메서드 오버로딩 vs 오버라이딩

🤔 비슷한 이름, 전혀 다른 사용법 오버로딩과 오버라이딩은 명칭만 보면 상당히 비슷한 작업을 수행할 것 같다. 하지만 둘은 전혀 전혀 전혀 전혀 다른 작업을 수행한다. 지금부터 그 차이를 알아보도록 하자. 📝오버로딩 (overloading) 메서드를 오버로딩한다는 것은 언어 그대로 보면 오히려 어려울 수 있다. 간단히 개념만 보자면, 다른 파라미터가 필요한 같은 이름의 메서드를 만드는 것이라고 보면 된다. public class Overloading { String id; String name; int count; public Overloading(String id, String name) { this.id = id; this.name = name; this.count = 0; } public Overl..

Java 2022.09.28

[Java] 자바의 파라미터

📝 파라미터란? 파라미터는 메서드 시그너처 마지막 괄호 안에 들어가는 매개변수를 의미한다. 파라미터를 이용하면 메서드 내에서 파라미터로 받아온 매개변수에 대한 정보를 처리할 수 있고, 이후 결과를 반환할 수 있다. public class Parameter { public static void main(String[] args) { System.out.println(parameterMethod(10, "30")); } public static int parameterMethod(int i, String s) { return i + Integer.parseInt(s); } } parameterMethod는 int형 매개변수 i와 숫자로 받은 String형 s를 더한 값을 return하는 메서드이다. 간단한 ..

Java 2022.09.27

[Java] Finally절

😤 이건 무조건 실행시켜줘! finally 예외를 처리하는 try-catch문과 자주 쓰이는 친구가 있다. 바로 'finally'. 한글로 해석해도 마지막으로 라는 의미가 있는 이 친구는 예외를 처리하고 나서 '마지막으로' 해당 블록 안에 있는 코드를 실행시켜준다. 그렇다면, finally는 보통 어떻게 쓰일까? 📝 finally의 활용 우선, 중복 코드를 방지할 수 있다. import java.time.DateTimeException; public class TestFinally { public static void main(String[] args) { try { int minute = Integer.parseInt(args[0]); if (minute = 60) { thr..

Java 2022.09.24

[Java] 내가 예외를 '던지는' 법

🤔 스스로 죽음을 택한다고? 외국 좀비 영화나 만화를 보면 가끔 그런 대사들이 있다. '내가 잘못될 거 같으면 네 손으로 나를 죽여줘.' 이렇게 나 스스로가 주변에 문제를 일으킬 것 같을 때, 스스로 죽음을 택하기도 한다. 프로그래밍에서도 뭔가 문제가 될 것 같은 코드에 직접 예외를 던지는 코드를 작성한다. 왜냐하면 만약 문제가 발생했는데 컴퓨터가 별 문제없다고 판단하고 그냥 실행시킬 수 있기 때문이다. 예외를 던진다는 표현을 사용하는데, 그 이유는 이런 경우 throw문을 작성하기 때문이다. import java.time.DateTimeException; public class ExceptionPractice { public static void main(String[] args) { try { int..

Java 2022.09.22

[Java] 예외를 다루는 몇 가지 방법

2022.09.20 - [Java] - [Java] 예외 처리의 이유와 종류 [Java] 예외 처리의 이유와 종류 🤗예외는 싫은데 예외 처리는 좋아요 Error와 같은 예외가 발생하는 경우 프로그램은 정상적으로 작동하기 어렵다. 대부분의 경우에서 예외는 프로그램이 정상적으로 동작하지 않기 때문에, codari.tistory.com 💻 예외 처리 방법은 뭘까? 저번에는 예외 처리의 이유와 종류에 대해서 조금 알아봤다. 이번에는 예외를 처리하는 몇 가지 방식에 대해서 알아보려고 한다. 사실 몇 가지 방식이라고 얘기하기도 무안한 것이 try-catch문이 전부이기 때문이다. 또한, 자바의 try-catch문은 조건도 상당히 간단하다. public class Handler { public static void ..

Java 2022.09.21

[Java] 예외 처리의 이유와 종류

🤗예외는 싫은데 예외 처리는 좋아요 Error와 같은 예외가 발생하는 경우 프로그램은 정상적으로 작동하기 어렵다. 대부분의 경우에서 예외는 프로그램이 정상적으로 동작하지 않기 때문에, 프로그램을 종료시켜 어떠한 문제가 있음을 알기 쉽지만, 가끔은 문제가 발생해도 컴퓨터는 심각한 문제로 생각하지 않아서 프로그램을 그대로 동작시키는 경우가 있다. 이런 경우 개발자가 예상하지 않았던 방향으로 프로그램이 흘러가기 때문에, 아주 큰 문제가 발생할 가능성이 높다. 이러한 문제를 예방하고자 자바에서는 예외 처리를 지원한다. 📑예외 객체의 종류 자바에서 예외 객체의 종류는 총 3가지로 나뉜다. Checked 예외 - RuntimeException의 하위 클래스를 제외한 Exception의 모든 하위 클래스 : 필수적으..

Java 2022.09.20

[Java] 자바의 데이터 타입

👀 데이터 타입이 뭐야? 데이터 타입은 말 그대로 어떠한 데이터가 동작하는 방식에 따라 나뉘는 타입을 말한다. 보통은 int, char, String 등 여러 데이터 타입을 의미하지만, 내가 오늘 하고 싶은 이야기는 이 모든 데이터 타입을 포함하는 넓은 의미의 데이터 타입에 대한 이야기를 하고자 한다. 🤪 원시? 참조? 자바는 총 2가지의 큰 데이터 타입으로 나뉜다. 1) 원시 데이터 타입(Primitive), 2) 참조 데이터 타입(Reference) 이 두 가지가 그것이다. 원시 데이터 타입은 총 8개의 타입을 제공하며, 우리가 흔히 알고 있는 int, char, boolean 등을 포함하고 있다. 더보기 자바의 원시 데이터 타입 8가지 1) byte 2) short 3) int 4) long 5) ..

Java 2022.09.04

[Java] Covariant(공변성)에 관한 간단한 이야기

📝 객체지향 5원칙(SOLID) SOLID는 객체지향 5원칙의 두음을 따서 만든 말이다. 각각 나열하자면, SRP(단일 책임 원칙) OCP(개방 폐쇄 원칙) LSP(리스코프 치환 원칙) ISP(인터페이스 분리 원칙) DIP(의존관계 역전 원칙) 위와 같이 존재한다. 이 중 오늘 이야기할 Covariant(이하 공변성)에 관한 이야기가 속한 곳은 LSP(Liskov Substitution Principle)다. 📌 LSP란? LSP는 타입 S가 타입 T의 서브타입이라면 프로그램의 속성 변경 없이 T타입의 객체를 S타입으로 치환할 수 있어야 한다.라는 개념이다. 쉽게 말하면, 서브타입은 수퍼타입을 대체할 수 있어야 한다는 말이다. 서브타입이 수퍼타입을 대체하는 개념, 그것이 바로 공변성이다. 공변성을 이용한..

Java 2022.09.02