전체 글 55

[백준 1436번 자바] 영화감독 숌

▶문제 출처 : https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net # 브루트포스 알고리즘 활용 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buffere..

[Section1] SW 벡엔드 부트캠프 첫번째 회고 :)

4월 25일부터 오늘까지 벌써 section1이 끝났는데,,, 정말 시간이 말도 안되게 빨리 지나갔다. 엉망진창 같지만 그래도 뭔가를 하긴 해서 그에대한 회고를 해보려고 한다. # 지난 한달간 내가 한 일들... 1. 프로그래밍의 시작과 Java 폭풍진도 나가기 몇번 써보지도 못한 리눅스도 제대로 이해해보고, 프론트엔드도 잠깐 맛보고, git 등 여러 프로그램의 활용법도 배웠다. 블로그도 만들어만 놓고 안쓰다가 다시 사용할 이유를 찾았다. TIL(Today I Learned)를 배운날 기준 +3일 내에는 다 해보려고 했지만 결국은 밀리기 시작했다 ㅎ... 일단 제일 중요한건 진짜 미친듯한 속도로 자바 공부를 하고 있다는 것이다. 사실 아직 이해되지 않은 부분이 많지만 주말에 조금씩 보충을 할거다 ㅠㅠ 아..

TIL [0517] 제네릭, 컬렉션 프레임워크

Generic, 제네릭 데이터의 타입에 의존하지 않고, 하나의 값이 여러 데이터 타입을 가질 수 있도록 하는 방법으로, 컴파일 시에 데이터의 타입을 검사하도록 한다. ArrayList arrayList = new ArrayList( ); 위와 같이 컬렉션을 생성할 때 ''안에 들어가는 타입을 제네릭이라고 한다. 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 타입으로, 컴파일 시에 해당 타입으로 변환하여 매개변수화 된 유형을 삭제한다. # 제네릭의 장점 - 잘못된 타입을 컴파일 단계에서 검사하여 런타임 시 프로그램 오류를 방지할 수 있다. - 타입 체크 및 수동 형변환에 대한 관리가 편하다. - 코드의 재사용성을 높인다. # 자주 사용되는 타입 매개변수 매개변수의 형태를 작성하는 데에..

TIL [0513] 객체 지향 프로그래밍 - 다형성, 추상화

다형성, Polymorphism 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것을 의미한다. 즉, 상위 클래스 타입의 참조변수로 하위 클래스의 객체를 참조할 수 있도록 한 것이다. (반대의 경우는 불가능하다!) Ex) Animal 클래스를 상속받은 Rabbit 클래스 Animal animal1 = new Rabbit( ); → animal1은 상위 클래스 타입을 가지는 참조변수이고, 실제로 생성된 객체는 Rabbit 클래스이다. ※ 참조변수가 사용할 수 있는 멤버의 개수는 실제 객체의 멤버 개수보다 같거나 적어야 한다. ※ 사용가능한 멤버의 개수는 참조변수의 타입에 의해 결정된다. 코드의 중복을 줄일 수 있다. 오버로딩과 오버라이딩을 통해 코드를 최소화할 수..

TIL [0512] 객체 지향 프로그래밍 - 상속, 캡슐화

상속, Inheritance 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 공통적인 속성과 기능을 상위 클래스로부터 확장하여 하위 클래스에 나타낸다. 새로 작성하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 'extends'와 같이 써주면 된다. (자바의 클래스 상속계층도의 최상위에 위치한 상위 클래스는 Object클래스이며, 아무 상속을 받지 않는 클래스에 자동적으로 컴파일러가 extends Object를 추가하여 상속받도록 한다.) ※ 생성자와 초기화 블럭은 상속되지 않고, 멤버만 상속된다. ※ 하위 클래스의 멤버 개수는 상위 클래스보다 항상 같거나 많다. #상속을 사용하는 이유 코드를 재사용하여 적은 양의 코드로 새로운 클래스를 작성할 수 있어 코드의 중복을 제거할 수 있다...

TIL [0511] 객체 지향 프로그래밍 - 클래스

클래스 객체를 정의해놓은 것, 객체의 설계도 또는 틀 인스턴스화 : 클래스로부터 객체를 만드는 과정으로, 이때 생성된 객체를 해당 클래스의 인스턴스라 함. 클래스의 구성요소 ① 필드(field) : 클래스의 속성을 정의한 변수 ② 메서드(method) : 클래스의 기능을 정의한 함수 ③ 생성자(constructor) : 클래스의 객체를 생성하는 역할 ④ 이너 클래스(inner class) : 클래스 내부의 클래스 # 인스턴스의 생성 클래스명 변수명; 변수명 = new 클래스명( ); Ex) Human hu = new Human( ); → 생성된 변수는 참조변수로, 객체의 주소가 저장되어 있다. → new에 의해 클래스의 인스턴스가 메모리의 빈 공간에 생성된다. → 생성된 인스턴스의 멤버변수를 사용하려면 ..

TIL [0509] 배열

Array, 배열 같은 타입을 가지는 여러 개의 변수를 하나의 묶음으로 다루는 것 # 배열이 가지는 각각의 값을 요소(원소)라고 하며, 각 요소는 번호를 가지는데 이를 인덱스라고 한다. # 각 요소에 부여된 인덱스는 0부터 시작된다. # 배열을 선언하는 것은 배열을 다루기 위한 참조 변수를 위한 공간이 만들어진 것이다. # 배열의 길이는 '배열이름.length'를 통해 알 수 있고, 'Arrays.toString(배열이름)'을 통해 배열의 각 요소를 출력할 수 있다. 배열의 선언과 초기화 ① 타입[ ] 변수이름 = new 타입[배열 크기]; / 타입 변수이름[ ] = new 타입[배열 크기]; → 값을 넣어주지 않으면 해당 타입의 기본값으로 자동 초기화된다. ② 타입[ ] 변수이름; 변수이름 = new ..

TIL [0506] 제어문

[ 조건문 ] # if문 if (조건식) { 조건식이 true일 때 실행 될 코드 } → 조건식은 boolean 값으로 결과를 낼 수 있어야 한다. → 조건식이 참이면 블록 내 코드가 실행되지만, 거짓이면 if문 자체를 빠져나간다. # if-else문 if (조건식1) { 조건식1이 true일 때 실행 } else if (조건식2) { 조건식1이 false이고, 조건식2가 true일 때 실행 } else { 조건식1, 2가 모두 false일 때 실행 } #switch문 switch (변수) { case "값1" : 인자로 들어온 변수의 값이 값1과 동일할 때 실행 할 코드 break; case "값1" : 인자로 들어온 변수의 값이 값1과 동일할 때 실행 할 코드 break; case "값1" : 인자로..

TIL [0504] Java

Java 자바 객체지향 프로그래밍 언어 중 하나로, 운영체제에 독립적으로 실행이 가능하다는 큰 장점으로 전 세계적으로 많이 쓰이는 언어이다. 특징 #1. OS에 독립적 JRE(Java Runtime Environment)가 설치되어 있는 모든 운영체제에서 실행이 가능하도록 만들어짐. JRE는 JVM(자바 가상 머신)과 표준 클래스 라이브러리로 이루어져 있음. #2. 객체 지향 언어(OOP, Object Oriented Programming) 객체지향 프로그래밍 개념을 사용하여, 모든 기능은 객체로 만들어 사용됨. 따라서, 유지보수가 쉽고 확장성이 높음 #3. 함수형 프로그래밍 지원 자바 8버전부터 람다식과 스트림을 추가하여, 컬렉션의 요소를 필터링/매핑/집계 처리가 쉬워지고 코드가 간결해지는 장점이 생김..

TIL [0503] Git

형상 관리 : 소프트웨어의 생명주기 동안 발생하는 변경 사항을 체계적으로 관리하여 소프트웨어의 품질 보증을 향상시키는 관리 활동 대표적인 형상 관리 도구에는 CVS, SVN, Git 등이 있으며, 소스 코드나 문서의 버전 관리, 이력 관리, 추적 등 변경 사항을 체계적으로 관리할 수 있는 기능을 제공한다. Git 리누스 토발즈가 2005년 리눅스 커널의 개발을 위해 만든 형상 관리 시스템이자 버전 관리 시스템 분산 저장소 방식으로 각 PC 스스로가 완전한 저장소가 되며, 필요에 따라 중앙 집중형 방식으로도 운영 가능함 주요 기능 ☆ 로컬/원격 형상 관리 : Commit, Check-out 등 로컬 환경에서의 기능과 Push, Pull 등 원격 환경에서의 기능을 제공함 ☆ 이관 기능 : commit 실패 ..