일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 그리디
- 클린코드
- 스프링
- Elasticsearch
- 애자일기법
- 그리디알고리즘
- framework
- 개발자
- API
- spring boot
- cleancode
- Java
- 읽기쉬운코드
- 알고리즘
- 백준
- 개발
- Spring
- JPA
- Baekjoon
- ES
- database
- 코딩테스트
- mongoDB
- 프레임워크
- 데이터베이스
- 코딩
- 자바
- 코드
- 애자일프로그래밍
- 엘라스틱서치
- Today
- Total
목록코드 (11)
튼튼발자 개발 성장기🏋️

문제 기출 : [https://www.acmicpc.net/problem/1543] 풀이 방법 [그리디알고리즘] 접근 내가 문제를 잘못 이해 했는지 두 시간 가량을 잘못된 방향으로 풀이되어서 상당히 시간낭비하였다. 문제를 읽어보면 "찾는 단어가 최대 몇 번 중복되지 않게 등장하는지?"이다. 주어진 조건 "몇 번부터든지 시작 index는 모두 가능"을 생각하여 나는 코드를 작성하였지만 전부 다 실패... 아무리 문제를 되새김질해도 난 모르겠다... 그래서 다른 블로그를 참고하였더니 문제 이해를 도와주었다...ㅠㅠ 주어진 문자열에서 찾을 문자열을 찾되, 중복되지 않게 등장하는 최대값을 구해야한다. 즉 주어진 문자열에서 찾을 문자열을 찾고 찾은 문자열을 빼버리면서 카운트 하면 되는 아주 간단한 문제였다.. 나..

우리가 무언가를 개발 할 때에 모든 것들을 전부 만들지는 않는다. 외부 패키지를 사용할 수도 있고 잘 짜여진 프레임워크를 쓸 수도 있고 오픈 소스를 사용할 수도 있다. 모두가 하나같은 마음을 가지면 좋겠지만 각기 다른 성격과 특성을 가지고 있고 서로 다른 목적이 뚜렷하고 그 목적에 맞게 설계되어 mix하여 사용할 땐 큰 어려움이 따른다. 이를테면 버전이 호환 안되서 잘 따져 보아야 하고, 캡슐화, 독립성 등을 고려해서 구조를 잡아 가는 것이 핵심. 그 외에도 고민해야할 것들이 많을 것 같다. 난 이 책을 읽고 Map이 얼마나 위험하고 귀찮게 하는 녀석인지 깨달았다. Map을 사용할 땐 캡슐화를 고려해보자!!!☝️ 그 이유는 Map(Collection과 같은) 혹은 Object 등 많은 데이터를 포함할 수..

조금씩 책의 내용이 어려워지고 있다. 한 문장을 무려 10번 읽고 되새김질 해보기도 한다.ㅠㅠ 최근 나는 싱글톤을 사용하여 개발한 적이 있는데 싱글톤 특징을 제대로 살리지 못하는 실수를 하고 말았다...😥 바로 생성자를 자동생성 생성자로 두었던 것... 알고 있으면서도 알아차리지 못했던게 더 괴씸하다!!! 경솔한 나의 생각때문에 큰 오류를 범할 뻔했다. java에서 access level을 둔 이유가 다 있다. 그것을 잘 활용하여 지켜주어야 한다..🙄 잘 생각해보면 protected는 거의 써본적이 없는 것 같고 변수는 private, 메소드는 public을 많이 사용하는데 이런거 하나하나 생각하면서 코드를 작성해야한다는걸 몸소 느끼며 깨달았다. 너무 익숙해지지 말자. 코딩에 당연한건 없다! 난 이 책을..

누구나 자신만의 코딩 스타일이 있는 법🤘 대학생 때는 나만의 스타일로 코딩을 했다. 심지어 툴 마저도 내가 커스터마이징 해서 눈이 덜 필로하게 어두운 색상으로 알아보기 쉬운 syntax 색상을 설정하기도 했다😊 취업을 했다면 자신의 스타일을 잊자. 내가 소속해 있는 조직에 룰이 있을텐데 그 룰을 파괴하는 흉악범(?)이 되지 말자🧛♂️ 팀 룰이 아무리 맘에들지 않거나 옳지 않아도, 따르지 않고 자신의 스타일대로 코딩하면 그것이 흉악범이지 무엇이겠는가!!!👹 나의 경우에는 서비스 별로 코드 스타일이 달라서 각 서비스 소스에 따라서 알맞게 코딩한다. 이것이 참 사소하면서도 나를 힘들게 한다. 한 번에 여러 서비스를 개발하다 보면 분명 스위칭을 하게 되는데.. 그것이 더디거나 꼬여버리면 전혀 다른 특성을 띄는..

문제 기출 : [https://www.acmicpc.net/problem/1541] 풀이 방법 [그리디알고리즘] 접근 연산자는 +와 -만을 다루고 피연산자는 양수인 것만 알아도 쉽게 접근할 수 있다. 괄호를 사용해서 최소값을 만든다고 했는데 괄호에 현혹될뻔했다. 먼저 +연산 먼저 해서 크기를 키운 다음 -연산을 하면 되지 않는가? 한 마디로, +연산으로 최대한 값을 키운 다음 그 값을 빼면 최소 값을 쉽게 도출할 수 있다. 식에서 '-'를 기준으로 식을 잘라 저장하면 나머지는 +연산이 되고, 그 값을 모두 더한 다음 -연산하면 정답을 빠르게 구할 수 있다. ※ 번외. 어디선가 비슷한 문제를 풀어본 적이 있다. 문자열로 사칙연산과 괄호를 포함한 문자열(String)을 input으로 주고 그 연산을 실행한 ..

좋은 주석은 뭐고 나쁜 주석의 차이는 뭔지 곰곰히 생각해보자.. 내 생각은 좋은 주석은 없다. 주석이 없는 주석이 가장 좋은 주석이다. 물론 코드가 개발자 의도를 100% 표현 했다는 가정 하에!☝️ 나의 경우는 내가 짠 코드의 일부분을 혹시나 다른 개발자가 못알아 듣거나 이해를 못할까 걱정이 되어 주석을 사용하곤 한다. 즉 내가 나를 못믿는데 누군가 나를 어떻게 믿을까😥😥😥 대부분의 주석은 쓸때 없는 주석, 주절거리는 주석 등으로 이루어 지지만 난 가장 필요한 주석은 히스토리 주석과 TODO주석이라 생각한다. ☝️소스코드 관리 시스템이 있다 한들, 특정 부분이 수정된 사유와 날짜 등을 파악하려면 시간을 들여야한다. ✌ TODO주석이 있다는 말은 일을 다 못끝냈다는 이야기. 그러나 그 누가 하루만에 개발..

함수는 "한 가지의 일만 해야하며 무슨 일을 하는지 딱 봐도 알 수 있을 정도의 네이밍이 필요하다."라는 것 정도는 알고 있는 사실이다☝️ 그런데 최소한의 인수와 break, continue를 사용하면 좋지 않다는 것이 저자 의견. break, continue는 반복문과 제어문의 쌍을 스무스하고 부드럽게 해주는 장치 역할을 한다고 생각한다. 이 녀석을 사용해야할 때에 사용하지 않는 방법이 있는가? 고민해볼 가치는 있어보인다. 인수를 두지 않고 클래스 혹은 전역 변수를 활용하는 것은 불필요한 자원을 사용하는 것이고 위험부담이 크다고 생각 되기에 공감하지는 않지만, 인수의 수에따른 단위 테스트의 어려움은 어느정도 공감 한다.🤔 처음부터 코드를 잘 짜는 사람은 없다. 코드를 짜기 전에 일단 문단으로 적어 보고..

문제 기출 : [https://www.acmicpc.net/problem/11399] 풀이 방법 [그리디알고리즘] 접근 굉장히 쉽게 접근할 수 있다. Pi를 오름차순으로 정렬해서 최소로 걸리는 사람부터 탐색하는 것이 기본. 다음과 같은 조건을 만족하면 된다. 기다리는 시간 = i번째 사람이 돈 뽑는데 걸리는 시간 x (사람 수 - i) 즉 기다리는 시간을 누적해 나아가면 답이 나올 것이다. 문제 풀이 public class Main { public static void main(String[] args) { int answer = 0; Scanner sc = new Scanner(System.in); int peopleCount = sc.nextInt(); int[] peopleTime = new int..