Chapter 2Item 1 생성자 대신 정적 팩터리 메서드를 고려하라정적 팩터리 메서드가 생성자 보다 좋은 장점 다섯가지.- 이름을 가질 수 있다. 정적 팩터리는 이름만 잘 지으면 반환될 객체의 특성을 쉽게 묘사할 수 있다. // 생성자BigInteger(int, int, Random)//정적 팩터리 메서드BigInteger.probablePrime - 호출될 때마다 인스턴스를 새로 생성하지는 않아도 된다. 이는 인스터스를 미리 만들어 놓거나 새로 생성한 인스턴스를 캐싱하여 재활용하는 식으로 불피요한 객체 생성을 피할 수 있다. 대표적인 예인 Boolean.valueOf(boolean) 메서드는 객체를 아예 생성하지 않는다. (?) 반복되는 요청에 같은 객체를 반환하는 식으로 정적 팩터리 방식의 ..
1. 개요 회사에서 개발 중 이해하지 못하는 버그가 발생되었다. C++과 Java만 쓰던 나에게는 아직 JS의 문법이 어려운 것 같다. 오늘은 내가 마주친 버그와 이 버그를 이해(?)하기 위해 공부한 내용을 적어보고자한다.2. 본론2.1 C++에 익숙한 내가 마주친 버그 아래의 C++ 코드를 보자. #include using namespace std;int main() { int tmp = 0; cout tmp라는 변수가 if문의 블럭 밖에서 선언되고 또 그 안에서 한번 더 선언됐다. C++은 이런경우 더 가까운 변수를 참조하는 것으로 되어있다. 따라서 if문 안에 있는 if문은 if문 밖에서 정의된 tmp변수를 참조한다. 그럼 이것과 비슷하게 작성된 JS 코드를 보자. let tmp =..
1. 개요2시간 녹인 문제... 늘 내 블로그에 적는 말이지만 구현은 초반 설계가 잘못된다면 정말 힘든 문제인 것 같다. 여러 예외도 생각해야하고... 이래서 난이도 높은 문제들은 구현인가...? 싶기도 하다. 문제를 나누고 나올 수 있는 예외를 전부 처리해야 성공하는 문제이기에 시간도 많이 들고 힘도 많이 들었다... 출처: https://www.acmicpc.net/problem/2933 2. 본문내가 생각한 구현 문제의핵심은 다음과 같다. 물론 말 그대로 타고난 능력이 좋은 사람들은 저런 방법이 필요 없겠지만 말이다.. ㅋㅋㅋ1. 문제를 단계별로 나눈다.2. 예외사항을 처리한다.3. 구현- 문제 나누기 문제를 나누면 다음과 같다.1. 방향에 맞는 미네랄 제거.2. 떨어지는 미네랄 조사.3. 떨어질 ..
1. 문제 및 예제 문제를 제대로 읽지 않아 두바퀴 정도 뺑뺑 돌다가 해결한 문제다. 아까운 내 한 시간이 날아갔다. 이렇게 장문의 문제를 푸는 요령이라도 터득해야할 것 같다. 집중력 문제인 것 같기도해서 최근에는 시간을 정해두고 문제를 풀고있다. 이런 구현 문제는 지금 회사에서도 비슷한 일을 하는데 이렇게 시간이 오래 걸리다니... 충격적이긴 하다 ㅋㅋhttps://school.programmers.co.kr/learn/courses/30/lessons/340211 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr2. 본론 이런 복잡한 문제들은 문제를 나누고 ..
1. 문제 및 예제 DP 열심히 풀던 와중에 이런 문제가 나오다니.. 행복했다. 회사에서는 JS를 쓰기 때문에 다시 C++을 사용해보니 메소드도 기억 안나서 그냥 내가 몇개 만들었다. 그래도 첫 제출에 맞춰서 나름 뿌듯했다. 1분 뒤에 레벨1 원트에 맞았다고 뿌듯해하는 내 자신을 보면서 자괴감도 조금 들었다...https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr2. 본론 선물을 주고받은 기록을 따로 배열에 저장하면 해결되는 간단한 DP문제이다. 선물..
1. 서론 회사에 큰 손해를 끼치며 배운 JS문법을 정리하고 같은 실수를 반복하지 않기 위해 과정을 정리하고자 한다. 사견이지만 JS는 자유도가 너무 높은 객체인 것 같다. 코테는 C++, 서버는 JAVA로 개발하고 지금 사이드 프로젝트에서는 Python을 사용하고 있기에 JS는 이번에 입사한 회사에서 처음 사용해본다. 처음 접한건 학교 웹 개발 수업에서 들은 정도... 자랑은 아닌데 따로 JS를 공부하지는 않았다. "여기저기 경험하고 다치면서 성장하는거지 뭐!" 라고 생각했는데 8톤 트럭에 치이고 콤마 상태 한 번 갔다 와보니 심각성을 느꼈다. 어떤 실수였는지에 대한 자세한 내용은 아래의 포스팅에 정리하였다.https://apape1225.tistory.com/169 [산업기능요원] 크나큰 실수 기념..
1. 문제 및 예시 실행 결과 중구난방으로 알고리즘 문제를 풀다 이러면 아무것도 안 될 것 같아서 내가 약한 유형의 문제를 우선적으로 공부해야겠다는 생각해 DP문제를 쭉 풀어보았다. 바킹독님의 블로그에서 공부하고 있는데 풀이가 달라 한 번 정리해보았다. 출처: https://www.acmicpc.net/problem/25792. 본문 DP는 데이터 구조를 먼저 생각해보고 점화식을 세우는 두가지의 단계로 나뉜다고 생각한다. 물론 점화식을 세운다는 것 자체가 안 되는 문제이기에 구현 다음으로 손에 익어야하는 문제가 아닌가 싶다. 어쨎든 해당 문제의 데이터 구조와 점화식은 다음과 같이 정했다.데이터 구조: cache[i] = i번째 계단으로 얻을 수 있는 점수 중 최대값. 이제 데이터 구조를 구하는 점화식..
1. 문제 및 예제 카카오 문제에 신나게 달려들었다가 멘탈 박살났다. 처음 들어갈때는 "이게 왜 LV.2야 ㄷㄷ" 라는 생각이 들었는데, 풀다보니 "이게 왜 LV.2야?" 라는 생각이 계속 들었다. ㅋㅋ 임의로 생성된 노드를 구하는 방법이 진입 간선과 진출 간선의 수를 가지고 구한다는 생각을 하지 못해 결국 남의 풀이를 찾아 보았다. 역시 카카오는 기발한 생각으로 쉽게 문제를 풀 수 있거나 문자열과 같이 미친 집중력과 피지컬을 요구하는 쌩짜 구현 이 둘로 나뉘는 것 같다. 불평 해봤자 달라질 건 없으니 해당 방법으로 임의의 노드를 구하고 각 그래프의 종류를 구했다. 각 그래프의 종류를 구하는 방법은 어렵지 않았다. (솔직히 간선의 수로 다 해결할 수 있는 문제였구나를 나중에 깨달았다.)https://s..
- Total
- Today
- Yesterday
- 백준 알고리즘
- CJ 올리브네트웍스
- 구현
- 개발자
- 문자열
- 코딩테스트
- 비트코인
- 기록지
- 백준
- 코테
- CJ
- Python
- XML
- 코딩
- 알고리즘
- spring
- 프로그래머스
- 안드로이드 스튜디오
- Programmers
- 백준알고리즘
- java
- BaekJoon
- 후기
- 육군
- Spring Boot
- C언어
- CJ Olivenetworks
- 자료구조
- c++
- 안드로이드 프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |