객체지향 프로그래밍이 뭐야? 객체지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나로, 데이터와 그 데이터를 처리하는 함수를 객체로 취급하여 프로그래밍하는 방식입니다. 주요 개념은 뭐야? 클래스(Class)와 객체(Object): 클래스는 객체를 생성하기 위한 템플릿이며, 객체는 클래스에 정의된 속성과 동작을 가지는 인스턴스입니다. 더보기 클래스와 객체 예시코드 public class Car { private String color; public Car(String color) { this.color = color; } public String getColor() { return color; } } public class Main { pub..
회의실 배정 성공 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시간은 ..
오랜만에 알고리즘 문제 푸려니까 죽을 맛이네요 영역 구하기 성공 문제 눈금의 간격이 1인 M×N(M, N≤100) 크기의 모눈종이가 있다. 이 모눈종이 위에 눈금에 맞추어 K개의 직사각형을 그릴 때, 이들 K개의 직사각형의 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어진다. 예를 들어 M=5, N=7 인 모눈종이 위에 과 같이 직사각형 3개를 그렸다면, 그 나머지 영역은 와 같이 3개의 분리된 영역으로 나누어지게 된다. 와 같이 분리된 세 영역의 넓이는 각각 1, 7, 13이 된다. M, N과 K 그리고 K개의 직사각형의 좌표가 주어질 때, K개의 직사각형 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어지는지, 그리고 분리된 각 영역의 넓이가 얼마인지를 구하여 이를 출력하는 프..
2주 차는 더 열심히 하고 싶었지만 조금 아쉬웠습니다. 주로 했던 생각은 아래와 같습니다! 3주 차 문제가 어려운 것 같아 간단하게만 정리합니다 https://github.com/woowacourse-precourse/java-racingcar-6/pull/751 구현단계에서 많은 문제에 직면했고 코드 리뷰와 저의 판단을 통해 3주 차 미션에 도입해야겠다고 생각했습니다. 주로 했던 고민은 아래와 같습니다. MVC 패턴을 적용하면서 컨트롤러에 Loop 문이 발생하는 문제 비즈니스 로직 혼입되어 있습니다. Controller 내부에 Loop 문이 있는 경우, 그 내부에서 특정 로직이 수행되고 있다는 것을 의미합니다. 다음 3주 차에 Controller를 더욱 간결하게 만들어야겠다고 생각했습니다. InputV..
작성일 10월 31일 AM 02:18 양이 엄청많아서 카톡에 회고를 그때그때 적어놨습니다.ㅠㅠㅠ 이제는 조금 회고록도 대충 쓰기 싫어서 콘셉트를 하나 잡고 쓰려고 하는데요. 오늘 주제는 Refactoring입니다. 음 Car , RacingCars, Result 총 3가지 모델로 이번 과제를 구성하였는데요. Result Model을 중심으로 이야기해보겠습니다. Refacrtor 전 Code package racingcar.model; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Result { private List winnerNameList; private int winnerDis..
https://github.com/woowacourse-precourse/java-baseball-6/pull/1299 [숫자 야구 게임] 이성호 미션 제출합니다. by dltjdgh0428 · Pull Request #1299 · woowacourse-precourse/java-base github.com 첫 PR후 많은 코드리뷰를 받았던 하루였습니다. 제가 코드리뷰를 먼저 많이 해드리니 다른 분들도 그에 보답해서 잘해주셔서 너무 감사드립니다. 그에 따라 1주 차를 마무리할 겸 피드백을 정리해보려 합니다. 1. 기능목록의 구체화 이거는 혼자서도 많이 느끼고 있었지만 지적해주셔서 너무 감사했습니다. 10/26일 어제부터 2주 차 미션이 시작됐는데 이 날 하루는 "온전히 기능문서 작성하는데" 쓰자라고 생각..
작성시각 10월 22일 오전 02:22 (이 포스팅은 1주 차 과제가 끝난 뒤에 자동 업로드됩니다.) 어느덧 10월 22일 4일차쯤 됐으려나요.. 그냥 제출하기 그래서 우테코 프리코스 디스코드를 탐방하던 중 MVC 이야기가 많이 나와서 그냥 대입해 보기로 했습니다. 많이 허접한데 지금 Controller, Model, View 개념도 다시 익히고 있어서 천천히 바꿔보려합니다. 가장 어려운 건 모델 부분인 것 같은데요. Controller 더보기 Controller 코드 부분 package baseball.Controller; import baseball.Model.BaseBallGame; import baseball.Model.NumberGenerator; import baseball.View.GameV..
https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 문제 백준이는 동생에게 "가운데를 말해요" 게임을 가르쳐주고 있다. 백준이가 정수를 하나씩 외칠 때마다 동생은 지금까지 백준이가 말한 수 중에서 중간값을 말해야 한다. 만약, 그동안 백준이가 외친 수의 개수가 짝수개라면 중간에 있는 두 수 중에서 작은 수를 말해야 한다. 예를 들어 백준이가 동생에게 1, 5, 2, 10, -99, 7, 5를 순서대로 외쳤다고 하면, 동생은 1, 1..
골드 V에 해당하는 BFS문제입니다. 문제 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다. 토마..