전체 글 42

[항해 99 TIL] 예외 처리(exception handling)

1. 예외 처리란? 프로그래밍에서 비정상적인 방향으로 향하게 되면 처리를 하게 됩니다. 저희가 보통 보는 에러 error가 있습니다. 이제 그러한 것들은 컴파일 단계에서 강제로 종료가 됩니다. 그래서 프로그램 입장에서는 치명적인 상태가 된다고 봅니다. 그러나 error보다는 정도가 약한 오류가 있습니다. 그것이 오늘 기술해볼 예외exception입니다. 예외 처리를 하는 이유는 프로그램 안정성 보장 오류 내용 전달 안전하게 데이터베이스 연결, 파일이나 패키지를 열 수 있습니다. 프로그램 흐름 제어 2. 예외 처리 방법 1) try-catch 기본적인 예외 처리 방식이며 try 블록 내에 예외가 발생할 코드를 넣고 catch블록으로 예외 처리를 하게 됩니다. try { // 예외가 발생할 수 있는 코드 }..

항해99 2023.06.21

[항해 99 TIL] 스터디의 시작

1. 자바의 정석 스터디 준비 [7-8] 접근 제어자의 접근 수준 1) 접근 제한자(access modifiers) `public` - `protected` - `(default)` - `private` 이 순으로 접근 수준이 낮으며 하나씩 설명을 해보면 (1) `public` : 접근 제한이 없으며 클래스나 패키지 사이에서도 자유롭게 접근합니다. public class MyClass { public int myVariable; // 어디서든 접근 가능한 변수 } (2) `protected` : 단어 워딩 하나는 기가 막힌 자바. 말그대로 접근 제한 수준이 높아지며 같은 패키지 내에서만 접근 가능하며 상속받은 클래스에서만 접근 가능합니다. public class MyClass { protected int..

항해99 2023.06.20

[Java] split 메서드

Java의 `split` 메서드는 문자열을 구분자를 기준으로 나누어 배열로 반환합니다. 이 메서드는 `String` 클래스의 일부로 제공되며, 주로 두 가지 형태가 있습니다. 1. split(String regex) 이 형태의 메서드는 하나의 매개변수를 취합니다. 이 매개변수는 정규표현식을 나타내며, 이 정규표현식에 따라 문자열이 분리됩니다. String text = "apple,banana,orange"; String[] fruits = text.split(","); // 결과: ["apple", "banana", "orange"] 2. split(String regex, int limit) 이 형태는 매개변수를 두 개 취하며 첫번째는 정규표현식, 두번 째는 분리할 최대 항목 수입니다. String t..

Java 2023.06.17

[Java] substring 메서드

Java 프로그래밍 언어에서 substring 메서드는 문자열의 특정 부분을 추출하여 새로운 문자열로 반환하는 데 사용됩니다. Java의 String 클래스에는 두 가지 주요 형태의 substring 메서드가 있습니다. substring(int beginIndex): 이 형태의 메서드는 하나의 매개변수를 취합니다. 이 매개변수는 추출할 부분 문자열의 시작 인덱스를 나타냅니다. 반환된 문자열은 이 시작 인덱스부터 원본 문자열의 끝까지 포함합니다. 인덱스는 0부터 시작합니다. String text = "Hello, World!"; String partialText = text.substring(7); // 결과: "World!" substring(int beginIndex, int endIndex): 이 형..

Java 2023.06.17

[Java] Scanner의 호출과 객체 생성 및 사용

1. Scanner 알고리즘 사이트인 백준 문제를 풀면 Scanner 함수를 볼 수 있는데요 기능을 간단하게 알아볼게요. 일단 Scanner는 util 패키지에 있습니다. import java.util.*; //util 패키지 소환 import를 했으니 한 번 사용해보겠습니다. 클래스 호출 이후 객체를 생성해야 합니다. Scanner in = new Scanner(System.in); 여기서 System.in은 유저의 입력을 받는 입력 스트림입니다.

Java 2023.06.17

[Java] Hash란? HasMap 사용법, Hash collision 발생 시

hash.. 프로그래머스의 "완주하지 못한 선수" 문제를 풀다가 도저히 안풀려서 정답 관련 구글링을 하였습니다. 그랬더니 나왔던 용어가 hash. 저는 java 초보이니 하나하나 간단히 풀고 가고 싶습니다. hash란? 제가 이해한 것으로는 ArrayList처럼 값을 저장하고 불럿 사용하는 방법인데 Hash는 db처럼 내부의 데이터를 배열로 저장하고 그 저장하는 Table를 Hash Table이라고 합니다. Hash는 key와 value로 이루어져 있고 이 둘은 1:1로 이루어져 있습니다. 그 역할을 Hash function이 담당하고 있으며 밑에 그림처럼 Lisa Smith라는 key 값과 521-8976 이라는 value 값은 Hash Code = 01를 통해 쉽게 찾을 수 있습니다. Hash 용어 ..

Java 2023.06.17

[항해 99] 2주차 알고리즘 테스트 연습(1)

1. 알고리즘 문제 풀었습니다.(19문제) 낮 오전 오후를 알고리즘 문제를 푸는데 전념했습니다. 다 풀고 나서는 조원들과 비교하며 내 부족한 부분이 무엇이고 이런 방법도 있구나~ 하며 피드백을 하였습니다. 그래서 이번 TIL은 알고리즘 문제를 풀며 알게 된 것을 적고 그 중 새로운 기능은 따로 블로깅을 해서 놓치지 않게 하겠습니다. 2. 문제 풀이 시작! 1) 직사각형 별찍기 ✒️ 직사각형 별찍기의 문제 이렇게 됩니다. 그래서 우선 스캐너를 만들어줬습니다. Scanner의 사용법은 간단하게 import java.util.Scanner; Scanner 를 import해주어야 합니다. import 해주었다면 Scanner sc = new Scanner(System.in); //Scanner 생성자 생성 시스..

항해99 2023.06.16

[항해99] 2주차 - 자바 문법 강의 3주차

1. 클래스 1) 객체 속성과 행위를 가진다. 속성 = 필드 행위 = 메서드 이것을 통한 설계를 객체 모델링. 중요 객체 간의 협력 ex) 사람과 자동차 사람 객체와 자동차 객체가 있다고 생각했을 때 사람은 자동차를 컨트롤하기 위해 자동차의 메서드를 부르게 되는데 그 메서드를 생각해보면 페달, 브레이크, 사이드 등 여러가지 메서드가 있게 됩니다. 그리고 자동차의 객체로서는 모델명, 기업명, 색 등이 될 수 있겠습니다. 객체 간의 관계 자동차와 차처럼 여러가지 관계를 가지게 됩니다. 이는 여러가지로 나누어지는데 (1) 사용 관계 (2) 포함 관계 (3) 상속 관계 이건 제가 일했던 설계로 표현하자면 CNC를 중심으로 모든 생산이 이루어지는데 체크밸브도 만들 수 있지만 릴리프 밸브도 만들 수 있습니다. 이러..

항해99 2023.06.16

[항해99 TIL] 2주차 - Java 문법 학습

Java언어 개요 Java의 역사 편한 코딩의 대표 주자(?) 자바(Java), 1990년대에 첫 발표..(ㄷㄷ)하여고 발전에 발전을 통해서 지금과 같은 컴퓨터가 되었습니다. C언어와 닮은 점이 많으며 변수와 메서드, 클래스와 객체까지 닮은 점이 많습니다. JVM Java Virtual Machine의 약자이며 자바 가상 머신입니다. 말하자면 Java 프로그램 실행을 위한 친구입니다. 항해99에서는 intelliJ를 소개시켜 주셨어요. 변수 변수란? int num = 1; 을 보겠습니다. int라는 타입과 num이라는 변수 이름, 1이라는 값이 있습니다. 기본적으로 java는 변수 타입을 지정해주어야 합니다. 그 역할을 int가 하고 있습니다. 또한 사용하는 방식은 위의 미리 지정해주거나 int num;..

항해99 2023.06.16

[프로그래머스 알고리즘 테스트] 배열 자르기

이번에 방법을 두개 제시하겠습니다. 하나는 반복문인 제가 풀은 방식인데 훨씬 간단한 방식이 하나 있어서 소개하겠습니다. 일단 저는 [방법 1] ArrayList 를 이용하여 num1부터 num2까지 반복문에서 add()를 이용하였습니다. import java.util.*; class Solution { public int[] solution(int[] numbers, int num1, int num2) { ArrayList answer = new ArrayList(); int j =0; for(int i=num1; i i).toArray(); return answer2; } } 일단 answer을 생성자로 ArrayList를 integer 타입으로 생성자 만들어주고 반복문 돌립니다. 하지만 그대로 실행하..

알고리즘 2023.06.05