목록분류 전체보기 (144)
개발지식 먹는 하마 님의 블로그
키오스크를 도전 기능 장바구니 구현을 마쳤다.역시나 딱히 어려운 부분이 없어서 적을만한 내용이 없다.세션에서 배운 내용을 바탕으로 Enum에 대해 정리했다.📚 학습 내용 정리Enumhttps://devhippo.tistory.com/87 Java - EnumENUM상수(한번 정해지면 변경할 수 없는 값)들의 집합final static 보다 안전하다가독성이 좋다== 으로 값을 비교하는 것이 가능하다런타임에 변경할 수 없다 📌ENUM도 객체이다내부적으로 class처럼devhippo.tistory.com ⏳ 학습하며 겪었던 문제점장바구니 기능까지 구현하니 장바구니를 별도의 클래스로 빼놨음에도 불구하고Kiosk 클래스가 굉장히 복잡해졌다.최대한 가독성 좋고 심플하게 만들고 싶어서 리팩토링 작업에 들어갔다.리..
ENUM상수(한번 정해지면 변경할 수 없는 값)들의 집합final static 보다 안전하다가독성이 좋다== 으로 값을 비교하는 것이 가능하다런타임에 변경할 수 없다 📌ENUM도 객체이다내부적으로 class처럼 동작한다.다른 클래스에서 import해서 사용 가능java 파일 내에 독립적으로 존재 가능필드와 메서드, 생성자를 가질 수 있다.특정 클래스 내부에 정의하는 것도 가능하다. 📌values() & valueOf()values() : 모든 열거형 값 가져오기 List의 모든 원소를 불러오는 것과 유사하다.valueOf()문자열을 Enum 값으로 변환한다. 📌특정 값으로 Enum 찾기 get(index) 처럼 특정 값으로 Enum을 찾고 싶다면직접 정적 메서드를 만들어야 한다.public stat..

키오스크를 lv4 중반까지 구현을 마쳤다.아직까지는 딱히 어려운 부분이 없어서 적을만한 내용이 없다.📚 학습 내용 정리프로그래머스 - 서울에서 김서방 찾기따로 정리할 정도의 난이도 있는 문제는 아니고 그냥 한 번 짚고 넘어가면 좋을 것 같은 내용이 있어서 적어보았다.https://school.programmers.co.kr/learn/courses/30/lessons/12919 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr C++ algorithm.h는 lower_bound와 find라는 함수를 지원한다.둘 다 매개변수가 존재하는 위치를 찾아 반복자 *iter를 반환한다는 공통점이 있다.배열의 길이가..
문자열을 응용하는 문제를 하나 풀이했다.GUI에서 구현하는 계산기와 이번 문제풀이에 유용하게 사용한 Pattern과 Matcher에 대해서 정리했다.마지막으로 계산기 도전 기능 구현을 완료했고 마지막으로 한 번더 검토하는 과정에 있다.📚 학습 내용 정리Git 커밋 컨벤션다음 프로젝트 구현에 들어가기 앞서 이전 프로젝트에서 챙기지 못했던 커밋 컨벤션에 대해 알아보았다.https://devhippo.tistory.com/83 Git 커밋 컨벤션을 지키면서 Commit하기!계산기 프로젝트를 개발 평가 기준에 "커밋 컨벤션을 지킨 커밋을 10회 이상 시행"이라는 항목이 있었다.GUI 구현에 눈이 멀어 이 부분을 놓쳤다.따라서, 다음 프로젝트 개발에 앞서 이 부분을 간devhippo.tistory.com 코드 ..

✏️ 문제 풀이처음 이 문제를 봤을 때, 대각선에 대한 직선의 방정식을 만들고 격자의 좌표를 대입하여 교차 여부를 확인하는 방법을 생각해보았다.그러나 쉽게 구현할 엄두를 내지 못했다.주어진 W와 H 입력의 최대값이 1억 이하의 자연수였기 때문이다.for(int i = 0; i 쿼드트리를 사용해볼까? 하는 고민도 해보았으나 쉽지 않았다.이런 나의 접근법과 일치하는 방법으로 푼 사람이 있었다.그 코드를 참고했다.long long solution(int w, int h) { long long answer = 0; for (int i = 0; i 1) 주어진 격자의 크기 w와 h로 직선의 방정식을 만든다.y = Gradient * xGradient = y좌표 간의 차 / x좌표 간의 차(0, 0),..
계산기 프로젝트를 개발 평가 기준에 "커밋 컨벤션을 지킨 커밋을 10회 이상 시행"이라는 항목이 있었다.GUI 구현에 눈이 멀어 이 부분을 놓쳤다.따라서, 다음 프로젝트 개발에 앞서 이 부분을 간단하게 정리하고 넘어가고자 한다.Commit 메시지 구조✅ type : 제목 ✅ body : 본문 ✅ footer : 꼬리말Type Commit의 목적을 나타낸다.(코드 생성, 수정 등의 변경 내용을 요약하는 단어다! 라고 이해했다.)첫 문자가 소문자인 영어로 작성한다.코드 작성 관련 태그태그 이름설명Feat새로운 기능을 추가했을 때 Style세미콜론 추가, 공백 수정 등 코드 스타일을 변경했을 때Refactor코드를 리팩토링 했을 때DesignCSS 등 사용자 UI 디자인을 변경했을 때Comment필요한 주..

GUI 계산기 프로젝트를 구현하였다.시간 관계상, 입력과 연산이라는 필수 기능 구현까지 끝마친 상태이다.따라서 구현 방법, 트러블 슈팅, 개선할 점 등을 기록하고자 한다.📚 주요 기능 구현❗ 기능 3가지GUI 구성버튼을 사용한 수식 입력 제한스택을 이용한 우선순위에 따른 연산JFrame의 Border Layout과 Grid Layout을 사용하여 GUI를 구성하였다.🟥 BorderLayout으로 구성한 상부계산기 상부에는 record와 exit, textField와 backSpace를 특정 위치에 배치하고 싶어 Border Layout을 사용하였다. Border Layout인 JPanel을 생성해 West에 record 버튼, East에 exit 버튼을 배치하였다.또 다른 Border Layout인..
코드 카타 시간에 푼 알고리즘 중, 조금 난이도가 있던 lv2 문제의 풀이를 정리하였다.GUI 계산기에서 입력을 받을 때, 입력의 제한 부분과 이를 구현한 내용에 대해 정리하였다.📚 학습 내용 정리시소 짝꿍 문제시소 짝꿍 문제를 풀이할 때, 고민한 내용을 정리하였다.https://devhippo.tistory.com/80 프로그래머스 lv2 - 시소 짝꿍✏️ 문제 풀이 - 최대공약수로 비율을 구하기두 Weight의 최대공약수를 구한다.최대공약수가 없는 경우 넘어간다.최대공약수가 있는 경우 기존 무게에 각각의 비율을 적용해 일치하는 경우의devhippo.tistory.com⏳ 학습하며 겪었던 문제점콘솔창을 사용해 구현한 계산기에서는 정수를 요청한 후 정수를 입력받고, 연산 기호를 요청한 후 그에 따른 문..

✏️ 문제 풀이 - 최대공약수로 비율을 구하기두 Weight의 최대공약수를 구한다.최대공약수가 없는 경우 넘어간다.최대공약수가 있는 경우 기존 무게에 각각의 비율을 적용해 일치하는 경우의 수를 찾아 카운트한다.이 경우 모든 비교에 대해 반복을 돌면서 최대공약수를 구해야 하기 때문에 비효율적으로 느껴졌다.(프로그래머스의 C++은 최대공약수를 구하는 함수 GCD) 굳이 최대공약수를 구할 필요없이 두 무게가 제시된 비율에 해당하는지 확인만 하면 된다.따라서 더 간단한 방법을 사용하고자 했다.X : Y = 2 : 33X = 2Y3X/2 = Y 비교 대상 중 하나인 Weight에 비율을 곱하고 나누어 시소의 균형을 이룰 수 있는 Y를 구하는 것이다.이분탐색 Binary Search 사용하기이분 탐색에는 lowe..

계산기 프로젝트의 level3(도전) 요구사항 구현을 완료했다.도전 기능의 요구사항을 어떻게 구현했는지에 대한 간략 설명 후,구현하면서 겪었던 트러블 슈팅에 대해 기록하고자 한다.📚 도전 기능 구현❗ 도전 기능 요구사항 제네릭을 활용하여 실수를 전달받아도 연산이 수행하도록 하기Enum 타입을 활용하여 연산자 타입에 대한 정보를 관리하기Lambda와 Stream을 활용하여저장된 연산 결과들 중 Scanner로 입력받은 값보다 큰 값을 조회 및 출력하기두 개의 입력값으로 연산을 한다고 할 때,(정수, 정수) = 정수(정수, 실수) = 실수(실수, 정수) = 실수(실수, 실수) = 정수, 실수위의 경우의 수와 같이 입력값 중 하나라도 실수라면 결과도 거의 실수로 나오기 때문에 (예외도 있다)따라서, 변수를 ..