Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Code
- TIL
- unmappable character for encoding MS949
- org.h2.jdbc.JdbcSQLSyntaxErrorException
- 자바스프링
- mysql
- 스프링시큐리티
- 알고리즘
- 항해99
- 자바
- 스파르타코딩클럽
- MS949
- HTML
- java
- jwt
- 독서
- 객체지향
- PUT과 PATCH
- 김영한
- 인텔리제이
- 에러해결법
- .decode('utf-8')
- 프로그래머스
- WIL
- JSESSIONID
- ServerSelectionTimeoutError
- 인프런
- 엔터키 이벤트
- java.sql.SQLException
- API
Archives
- Today
- Total
고을마을 : 나의 코딩 이야기
항해99 7기 9일차 TIL[JAVA 프로그래머스 알고리즘, 객체지향 과제] 본문
2022년 5월 16일 항해9일차.
오늘도 어제와 같이 알고리즘 공부를 했다.
오늘은 알고리즘 모의고사가 있는 날이라 지금까지 풀었던 문제들을 다시한번 풀어보고 조원들에게 설명해보는 시간을 가졌다.
사실 알고리즘 모의고사는 별 걱정없었고 오늘 나의 가장 큰 걱정은 객체지향 과제였다.
문제를 여러봐도 감이 잡히지 않았고,
결국 에이스 조원의 특강(?)을 듣고 한땀한땀 코딩을 해보게 됐다.
전문적인 테스트 코드까지 작성해가면서 보여주는 우리 조의 에이스 분의 코드에 비하면
내 코드는 미천하기 짝이없다.
사실 에이스 분의 코드를 내 컴퓨터로 가져와 복사 붙여넣기하고, 그 코드를 계속 보고, 이해하고, 과제를 제출해도 그만이다.
하지만 그러면 내 실력이 향상될까? 라는 의문이 들었다.
그려지지 않아도 머리를 쥐어짜내서 과제의 48% 정도를 해내게 됐다.
지금은 새벽 2시 21분이다.
이 시간까지 컴퓨터 앞에서 코드를 쳐본게 인생 처음이다.
사실 내가 작성한 코드가 맞는건지도 잘 모르겠다. 굉장히 비효율적이고 다른 사람은 보기도 힘든 코드...
내일 조원들과 회의를 하거나 기술매니저와 상담을 나눠보면 다 엎어야 할 수도 있는 코드...
내가 이 코드를 이 TIL에 올리는 건 나중에 항해99 70일차 정도 됐을때 이 코드를 다시한번 보기 위함이다.
항해 70일차. 그때의 나는 지금 내가 작성한 코드보다 훨씬~~~~ 더~~~~~~~ 깔끔하게 작성할 수 있길.
아래의 코드를 보고 "아 진짜 이랬었구나... 많이 발전한거구나."라고 말 할 수 있길.
public class Bus {
int busNum;
int intake = 0;
int passenger;
int oil;
int speed;
boolean status = true;
public Bus(int busNum, int oil, int speed){
this.busNum = busNum;
this.oil = oil;
// this.passenger = passenger;
this.speed = speed;
}
public void status(boolean status){
this.status = status;
}
public void passenger(int passenger){
this.passenger=passenger;
}
public void take(int passenger) {
this.passenger++;
this.intake += 1000;
}
public void oil(int passenger){
this.passenger++;
this.oil -= 10;
}
public int getOil(){
return oil;
}
public int getBusNum() {
return busNum;
}
public int getIntake() {
return intake;
}
public int getPassenger() {
return passenger;
}
public void lowSpeed(int low){
this.speed = speed-low;
System.out.println("기존 속도 대비 " +low+ "km/h 줄여 " +this.speed+ "km/h로 운행합니다.");
}
public void highSpeed(int high){
this.speed = speed+high;
System.out.println("기존 속도 대비 " +high+ "km/h 높여 " +this.speed+ "km/h로 운행합니다.");
}
public void BusNumInfo() {
System.out.println("이 Bus는 " + this.getBusNum() + "번 입니다.");
}
public void PassengerInfo(){
System.out.println("현재 " +this.getPassenger() + "명의 승객이 타고 있습니다.");
}
public void intakeInfo(){
System.out.println("버스 운행 누적요금은 " + this.getIntake() + "원 입니다.");
}
public void oilInfo(){
System.out.println("현재 기름량은 "+ this.getOil() + "L입니다.");
}
}
public class Human {
int money;
public Human(int money) {
this.money = money;
}
public void takeBus(Bus bus) {
this.money -= 1000;
bus.take(1);
}
public void takeSubway(Subway subway) {
this.money -= 1500;
subway.take(1);
}
public int getMoney() {
return money;
}
}
public class Main {
public static void main(String[] args) {
Human stu1 = new Human(10000);
Human stu2 = new Human(20000);
Human stu3 = new Human(14000);
Human stu4 = new Human(15000);
Human stu5 = new Human(15000);
Human stu6 = new Human(15000);
Human stu7 = new Human(15000);
Human stu8 = new Human(15000);
Human stu9 = new Human(15000);
Human stu10 = new Human(15000);
// Human stu11 = new Human(15000);
Bus bus100 = new Bus(100,100,50);
stu1.takeBus(bus100);
stu2.takeBus(bus100);
stu3.takeBus(bus100);
stu4.takeBus(bus100);
stu5.takeBus(bus100);
stu6.takeBus(bus100);
stu7.takeBus(bus100);
stu8.takeBus(bus100);
stu9.takeBus(bus100);
stu10.takeBus(bus100);
// stu11.takeBus(bus100);
bus100.BusNumInfo();
bus100.PassengerInfo();
bus100.intakeInfo();
if(bus100.getPassenger()>=11){
System.out.println("운행불가! 최대승객수는 10명 입니다.");
return;
}else{
System.out.print("운행합니다. ");
}
int speed = bus100.speed;
System.out.println("현재속도 " +speed+ "km/h");
bus100.oilInfo();
if(bus100.getOil() >= 11){
System.out.println("현재의 주유량은 운행에 문제 없습니다.");
}else if(1<=bus100.getOil()){
System.out.println("경고: 주유량을 확인해주세요");
}else if(bus100.getOil() == 0){
System.out.println("기름이 없습니다. 차고지로 돌아갑니다. 운행종료합니다.");
return;
}
System.out.println("고속도로에 진입합니다. 속도를 올립니다.");
bus100.highSpeed(80);
System.out.println("고속도로를 빠져나왔습니다. 속도를 줄입니다.");
bus100.lowSpeed(80);
}
}
'항해99 7기 > TIL(Today I Learned)' 카테고리의 다른 글
항해99 7기 12일차 TIL[org.h2.jdbc.JdbcSQLSyntaxErrorException 에러!] (0) | 2022.05.21 |
---|---|
항해99 7기 11일차 TIL[알고리즘 테스트, 객체지향 과제] (0) | 2022.05.19 |
항해99 7기 8일차 TIL[JAVA 프로그래머스 알고리즘] (0) | 2022.05.17 |
항해99 7기 6일차 TIL[JAVA 프로그래머스 알고리즘] (0) | 2022.05.14 |
항해99 7기 5일차 TIL[JAVA 프로그래머스 알고리즘] (0) | 2022.05.13 |