전체 글
-
모각코 내부스터디 PS / 백준 1449번 - 수리공 항승PS 2022. 5. 13. 17:56
모각코 내부스터디 PS 어제는 따로 모이는 날은 아니었는데 다들 라운지에 계셔서 놀러가봤다. 문제를 막 풀려고 하시던 참이라고 해서 나도 껴서 한 문제 풀어보았다. 그 문제를 정리해보려고 한다. 문제 링크 : 백준 1449번 - 수리공 항승 처음은 문제를 보고나서 의식의 흐름대로 대충 풀어보았고, 다음날 아침(오늘) 리팩토링 해보았다. 그리고 어제 함께 문제 풀었던, 모각코 스터디 대장님의 코드를 보면서 생각해보니, 모든 케이스에 선형시간이 걸리게 풀 필요가 없단 걸 깨달았다. 역시 대장님...!!이라고 생각을 하면서... 또 한번 코드를 고쳐보았다. 아이디어를 제시해주셔서 감사드립니당. ( - -)( _ _) (너그럽게 표기도 허락해주셨다!) 첫번째 풀이 👇너무 의식의 흐름이라 접어놨다... 귀찮음이 ..
-
추상클래스와 인터페이스의 차이와 선택 기준각종 학습 요약/Java 2022. 5. 13. 16:17
추상클래스와 인터페이스의 차이와 선택 기준 이 글은 추상화나 abstract 키워드에 대해 설명하는 글이 아니고, 추상화 개념이 동일하게 적용되었으면서도 각각 다른 방식으로 상속하는 추상클래스와 인터페이스의 차이를 알아보기 위함이다. 추상클래스의 특징 추상클래스는 일반 필드와 일반 메소드 그리고 추상 메소드를 가질 수 있는 클래스다. 인터페이스의 특징 static final 변수만 가질 수 있으며 추상 메소드를 가질 수 있는 추상객체다. 한 가지 의문 추상 클래스의 설명을 읽다가 문득 이런 의문이 들었다. 추상 클래스도 주 목적은 추상메소드 구현을 통한 강제 Overriding이고, 인터페이스의 주 목적도 동일하게 구현체의 기능 구현을 강제하는 건데, 굳이 둘이 나눠져 있는 이유는 뭐지? 인터페이스가 다..
-
Java: 다형성을 '정말' 이해하기 위해서Java 학습 2022. 5. 13. 12:58
Java: 다형성을 '정말' 이해하기 위해서 들어가기 앞서 다형성의 기초적인 개념을 설명하는 글이 아니지만, 다형성을 잘 이해하는 데에 있어서 꼭 필요하다고 생각되는 부분을 나름대로 정리해보려고 한 글이다. 본 내용은 아래 파트에서 설명한다. 이 파트는, 왜 그 알아듣기도 어려운 설명을 꼭 들어야하는지에 대한 나의 생각이다. 그럼 그게 어떤 생각인지, 한번 이야길 해보자. 다형성은 특정한 로직 구성 방법을 말하는 것이 아니다. 다형성은 개념이다. 우리가 자연수를 설명한다고 해보자. 자연수는 '특정한 수'가 아니고 '개념'이다. 이 개념을 설명하기 위해서는 '0보다 큰 정수'라는 개념을 알려줘야만 한다. 그 설명을 듣고 바로 이해가 되지 않더라도, ..
-
인텔리제이(IntelliJ IDEA)가 갑자기 안 켜질 때: Internal Error. ...IntelliJ IDEA 2022. 5. 13. 09:17
인텔리제이(IntelliJ IDEA)가 갑자기 안 켜질 때 Internal error. Please refer to https://jb.gg/ide/critical-startup-errors 어쩌구 저쩌구... (대충 치명적인 내부 오류라는 말) 9시 보다 훨씬 이르게 자리에 앉아서, 어제 풀었던 PS 코드를 정리해보려고 인텔리제이를 켰는데 한참을 기다려도 켜지지 않았다. 내가 IDE를 안 눌렀나? 싶어서 봤더니 위와 같은 메시지가 나와있었다. 해결하는 법을 구글링했더니 config 파일을 지우는 것부터 나와서(...개인설정이 초기화 되어 다시 세팅해야 한다...) 그러지 않고 해결하는 법부터 나열해본다. 꼭 순차적으로 시도할 필요는 없고, 필요한대로 골라서 시행하면 된다. 1. 껐다 켜자. 말 그대로다..
-
TIL: 백엔드 부트캠프 13일차 with 코드스테이츠Today I Learned & WIL, MIL 2022. 5. 13. 09:15
220512_TIL & 학습 평가 1. TIL 객체지향 프로그래밍 심화 상속 캡슐화 Sorting: insertion sort 블로그 포스팅 Java의 상속 개념 2. 학습 평가 학습 난이도: RPE 4 학습 집중도: RPE 3 습득 수준: RPE 4 👇참고: 수준을 정하는 주관적 척도 (긍정적인 경우도 느낌은 비슷하게 정한다. 단, 호들값 없이.) * 0: 휴식 / 1: 아주 아주 쉬움 / 2: 쉬움 * 3: 보통 / 4: 어떤 부분은 조금 어려웠음 * 5: 어려움 / 6: 노력해도 모르겠는 부분이 많다 / 7: 너무 어려움 * 8: 못 따라가겠어... 노력해도 모르겠고, 뭘 봐야할지도 모르겠어.. 흰건 종이고, 검은건 글자다... * 9: 이제 진짜 더는 무리다. 누가 알려줘도 모르겠어. * 10: ..
-
# Java의 상속 개념 : inheritance, composite각종 학습 요약/Java 2022. 5. 12. 16:24
Java의 상속 개념 상속에 대해 설명을 잘하는 것 같진 않지만, 적어도 장단점은 꼭 알아보고 상속 개념을 활용하면 좋겠다는 마음으로 글을 써본다. 이 글에도 끄트머리 즈음(아마도..)에 장단점을 다룬다. 상속이란? 두 클래스 간 만들어질 수 있는 연관 관계 중 하나다. 둘 중 개념의 범위가 좀 더 넓고 하나를 포괄하고 있는 클래스를 상위 클래스(혹은 부모 클래스)라고 하고, 좀 더 특정적이고 구체적인 개념의 클래스를 하위 클래스(혹은 자식 클래스)라고 한다. 개념적인 설명이 잘 와닿지 않는다면 역시 비유로 가자. 언제 상속관계가 필요할까? IS-A or HAS-A / 상속(inheritance)와 포함(composite)이라는 키워드를 알아야 한다. 닉은 사람이다 (닉 == 사람, is-a) 닉은 심장..
-
TIL: 백엔드 부트캠프 12일차 with 코드스테이츠Today I Learned & WIL, MIL 2022. 5. 11. 21:57
220511_TIL & 학습 평가 1. TIL 객체지향 프로그래밍 Java : 생성자(Constructor) Sorting: bubble sort 2. 학습 평가 학습 난이도: RPE 3 학습 집중도: RPE 4 습득 수준: RPE 4 👇참고: 수준을 정하는 주관적 척도 (긍정적인 경우도 느낌은 비슷하게 정한다. 단, 호들값 없이.) * 0: 휴식 / 1: 아주 아주 쉬움 / 2: 쉬움 * 3: 보통 / 4: 어떤 부분은 조금 어려웠음 * 5: 어려움 / 6: 노력해도 모르겠는 부분이 많다 / 7: 너무 어려움 * 8: 못 따라가겠어... 노력해도 모르겠고, 뭘 봐야할지도 모르겠어.. 흰건 종이고, 검은건 글자다... * 9: 이제 진짜 더는 무리다. 누가 알려줘도 모르겠어. * 10: (그냥 물리적으로..
-
Java: 생성자(Constructor)의 기본적인 이해각종 학습 요약/Java 2022. 5. 11. 13:28
Java: 생성자(Constructor)의 기본적인 이해 생성자란? 생성자는 이름에서 보이듯 뭔가 생성하는 녀석이다. 그렇다면 무엇을 생성하는가? 자기 자신이다. 무슨 말인지 천천히 알아보자. Java의 모든 클래스 내부에는 생성자가 존재한다. 생성자가 없으면 클래스를 생성할 방법이 없다. 우리가 어떤 클래스를 객체로 생성할 때를 보면 왜인지 알 수 있다. String string = new String(); new 키워드 뒤에 보면 String()가 있다. 이것은 무얼 호출하고 있는 것일까? 바로 String 클래스에 있는 생성자다. IDE에서 해당 부분에 커서를 두고 Ctrl + Click하면 String 클래스의 해당 생성자로 곧장 이동한다. /* String Class의 기본 생성자의 모습 */ ..