Seren dev's blog
article thumbnail
[백준] 20164번 : 홀수 홀릭 호석 - 자바[Java]

https://www.acmicpc.net/problem/20164 20164번: 홀수 홀릭 호석 호석이는 짝수랑 홀수 중에서 이니셜이 같은 홀수를 더 좋아한다. 운전을 하던 호석이는 앞차의 번호판이 홀수로 가득할 때 사랑스러움을 느낄 정도이다. 전화번호도 홀수만 있고 싶다. 그렇게 www.acmicpc.net 풀이 위 문제는 다음과 같은 연산을 반복한다. 입력받은 숫자 -> 홀수 개수 카운트 숫자를 짜름 -> 짜른 각각의 숫자를 모두 더한 숫자 -> 홀수 개수 카운트한 다음 이전 카운트에 더함 숫자의 홀수 개수를 카운트한 다음 이전 카운트에 더하는 로직이 반복되므로, 재귀호출 또는 반복문을 사용해야 한다. 또한 만들 수 있는 모든 경우의 수를 구해 그중 최솟값과 최댓값을 구해야 한다. 즉, 재귀호출을 ..

article thumbnail
[현대자동차그룹 소프티어 부트캠프] 웹 백엔드 1기 합격 후기

학교 전공 수업 이외로 Java와 Spring 관련 인터넷 강의를 들으면서 혼자서 학습해왔고, 현재 연합동아리를 하며 팀 프로젝트 경험도 쌓고 있었는데, 겨울방학동안 뭘 배우거나 뭘 하면 좋을까 고민하던 생각에 "현대자동차그룹 소프티어 부트캠프" 모집에 대해 알게 되어 지원하기로 결정했다. 다른 부트캠프들과 달리 자기소개서와 면접을 진행하지 않아서 지원하는데 부담이 크지 않았고, 교육비가 전액 무료인데다가 채용연계형이라는 점 때문에 더더욱 좋은 기회라고 생각하고 합격하고 싶었다. 2022년 10월 14일(금) ~ 2022년 10월 28일(금)까지 부트캠프 참가자를 모집했고, 웹프론트엔드, 웹백엔드 분야를 모집했다.교육 일정은 2023년 1월 2일 ~ 2023년 2월 28일까지이고, 모집 대상은 다음과 같..

article thumbnail
자바의 정석 8장 : 예외처리
Programming/JAVA 2022. 12. 19. 17:57

이 글은 남궁성 님의 "자바의 정석: 기초편" 책을 읽고 정리한 내용입니다. 프로그램 에러/오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우 - 컴파일 에러 : 컴파일 시에 발생하는 에러 - 런타임 에러 : 실행 시에 발생하는 에러 - 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것 ex) 창고의 재고가 음수가 된다거나, 게임에서 비행기가 총알을 맞아도 죽지 않는 경우 소스 코드 컴파일 -> 컴파일러가 소스코드(*.java)에 대해 오타나 잘못된 구문, 자료형 체크 등의 기본적인 검사를 수행하여 오류가 있는지를 알려준다. -> 컴파일을 성공적으로 마치면, 클래스 파일(*.class)이 생성되고, 생성된 클래스 파일을 실행할 수 있다. Java의 런타임 에러..

article thumbnail
자바의 정석 7장 : 객체 지향 프로그래밍2
Programming/JAVA 2022. 12. 18. 20:30

이 글은 남궁성 님의 "자바의 정석: 기초편" 책을 읽고 정리한 내용입니다. 상속 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 -> 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여를 한다. 클래스 간의 상속관계를 그림으로 표현한 것을 상속계층도(class hierarchy)라고 한다. - 자손 클래스는 조상클래스의 모든 멤버를 상속받는다. (단 생성자와 초기화 블럭은 상속되지 않는다. 클래스 간의 관계 - 포함관계 한 클래스의 멤버변수로 다른 클래스의 참조변수를 선언하는 것 Class Circle { Point c = new Point(); int r; } Class Car { Engine e = new Engine(); Door[] d = new Do..

article thumbnail
[백준] 3190번 : 뱀 - 자바[Java]
Algorithm 문제 풀이/백준 2022. 12. 16. 00:42

3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 풀이 입력으로 보드의 크기, 사과의 위치, 뱀의 방향 변환 정보를 받아 static 변수에 저장한다. static int size; //보드 크기 static boolean[][] apples; //사과가 있는 칸은 true, 없으면 false static HashMap directChange; //뱀의 방향 변환 정보 public static void main(String[] args) throws IOException { BufferedReader br = new ..

article thumbnail
자바의 정석 6장 : 객체 지향 프로그래밍1
Programming/JAVA 2022. 12. 15. 19:31

이 글은 남궁성 님의 "자바의 정석: 기초편" 책을 읽고 정리한 내용입니다. 객체지향 언어 객체지향 언어는 기존의 프로그래밍 언어와 다른 전혀 새로운 것이 아니라, 기존의 프로그래밍 언어에 몇 가지 새로운 규칙을 추가한 보다 발전된 형태의 것이다. 이러한 규칙들을 이용해서 코드 간에 관계를 맺어줌으로써 보다 유기적으로 프로그램을 구성하는 것이 가능해졌다. 객체지향언어의 주요 특징 1. 코드의 재사용성이 높다. 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 2. 코드의 관리가 용이하다. 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드..

자바의 정석 5장 : 배열
Programming/JAVA 2022. 12. 15. 15:17

이 글은 남궁성 님의 "자바의 정석: 기초편" 책을 읽고 정리한 내용입니다. 배열이란? "같은 타입의 여러 변수를 하나의 묶음으로 다루는 것" 배열은 각 저장공간이 연속적으로 배치되어 있다. int[] score; //배열 선언 score = new int[5]; //배열 생성 arr.length //배열의 길이이며 상수이다. 배열의 유효한 인덱스 범위가 아닌 인덱스로 접근하면 ArrayIndexOutOfBoundsException 예외가 발생한다. 배열 초기화 int[] score = new int[]{10, 20, 30}; int[] score = {10, 20, 30}; 선언과 생성을 따로 하면 new int[] 생략 불가능 int[] score; score = {10, 20, 30}; // 에러 ..

자바의 정석 3~4장 : 연산자, 조건문과 반복문
Programming/JAVA 2022. 12. 13. 20:37

이 글은 남궁성 님의 "자바의 정석: 기초편" 책을 읽고 정리한 내용입니다. 3장 : 연산자 반올림 연산 Math.round(4.52) // 5 소수점 첫째 자리에서 반올림한다. 다른 자리에서 반올림하려면 10의 n제곱으로 적절히 곱하고 나누어야 한다. double pi = 3.141592; double shortPi = Math.round(pi * 1000) / 1000.0; // 3.142 나머지 연산 음수의 경우 부호 무시하고 나머지 연산한 결과에 왼쪽 피연산자의 부호를 붙인다. -10%8 = -2 10%-8 = 2 -10%-8 = -2 문자열의 비교 == 대신 equals() 사용 대소문자를 무시하고 싶으면 equalsIgnoreCase() 4장 조건문과 반복문 switch문의 제약조건 1. sw..

자바의 정석 2장 : 변수
Programming/JAVA 2022. 12. 13. 20:09

이 글은 남궁성 님의 "자바의 정석: 기초편" 책을 읽고 정리한 내용입니다. 변수는 하나의 값을 저장할 수 있는 저장공간 변수의 타입은 참조형과 8개의 기본형이 있다. 분류 변수의 타입 설명 숫자 int long 정수를 저장(20억이 넘을 땐 long) float double 실수를 저장 (float은 오차없이 7자리, double은 15자리) 문자 char 문자(character)를 저장 String 여러 문자(문자열, string)를 저장 상수와 리터럴 상수는 변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다. final 키워드를 사용한다. 상수의 이름은 대문자와 '_'를 사용한다. 원래 12, 123, 3.14, 'A'와 같은 값들이 '상수'인데 이를 구분하기 위해 리터럴이라는 용어를 사..

자바의 정석 1장 : 자바를 시작하기 전에
Programming/JAVA 2022. 12. 10. 23:43

이 글은 남궁성 님의 "자바의 정석: 기초편" 책을 읽고 정리한 내용입니다. 자바란? 자바는 객체지향 프로그래밍 언어다. 자바의 가장 중요한 특징은 운영체제(OS, 플랫폼)에 독립적이라는 것이다. 자바로 작성된 프로그램은 운영체제의 종류에 관계없이 실행이 가능하기 때문에, 운영체제에 따라 프로그램을 전혀 변경하지 않고도 실행이 가능하다. 이러한 장점으로 자바는 다양한 기종의 컴퓨터와 운영체제가 공존하는 인터넷 환경에 적합한 언어로써 인터넷의 발전과 함께 많은 사용자층을 확보할 수 있었다. 자바는 풍부한 클래스 라이브러리(Java API)를 통해 프로그래밍에 필요한 요소들을 기본적으로 제공하기 때문에 단순히 이 클래스 라이브러리만을 잘 활용해도 강력한 기능의 자바 프로그램을 작성할 수 있다. 지금도 자바는..

article thumbnail
[우아한 테크코스 백엔드 5기] 프리코스 4주차 "다리 건너기" 미션 회고

프리코스 4주차 미션을 진행한 과정, 느낀 점, 개선할 점을 작성한 회고록이다. 프리코스 4주차 다리 건너기 미션 Github 링크 🎯 프로그래밍 요구 사항 추가된 요구 사항 함수(또는 메서드)의 길이가 10라인을 넘어가지 않도록 구현한다. 함수(또는 메서드)가 한 가지 일만 잘하도록 구현한다. 메서드의 파라미터 개수는 최대 3개까지만 허용한다. 아래 있는 InputView, OutputView, BridgeGame, BridgeMaker, BridgeRandomNumberGenerator 클래스의 요구사항을 참고하여 구현한다. 각 클래스의 제약 사항은 아래 클래스별 세부 설명을 참고한다. 이외 필요한 클래스(또는 객체)와 메서드는 자유롭게 구현할 수 있다. InputView 클래스에서만 camp.nex..

article thumbnail
[우아한 테크코스 백엔드 5기] 프리코스 3주차 "로또" 미션 회고

프리코스 3주차 미션을 진행한 과정, 느낀 점, 개선할 점을 작성한 회고록이다. 프리코스 3주차 미션은 "로또" 미션으로, 로또 게임을 구현해야 한다. 2주차 공통 피드백 중 중요하다고 생각한 피드백을 아래에 적어두었다. 2주차 공통 피드백 1. 기능 목록을 재검토하고 업데이트한다 기능 목록을 클래스 설계와 구현, 함수(메서드) 설계와 구현과 같이 너무 상세하게 작성하지 않는다. 클래스 이름, 함수(메서드) 시그니처와 반환값은 언제든지 변경될 수 있기 때문이다. 너무 세세한 부분까지 정리하기보다 구현해야 할 기능 목록을 정리하는 데 집중한다. 정상적인 경우도 중요하지만, 예외적인 상황도 기능 목록에 정리한다. 특히 예외 상황은 시작 단계에서 모두 찾기 힘들기 때문에 기능을 구현하면서 계속해서 추가해 나간..