일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 탐색알고리즘
- Spring
- 우아한테크캠프
- Database
- 단위테스트
- Java
- SQL
- 웹프로그래밍
- react
- framework
- 연습문제
- 데이터베이스
- 우아한형제들
- BOJ
- JPA
- Vue
- TypeScript
- 알고리즘
- springboot
- 백준
- BAEKJOON
- JavaScript
- 프레임워크
- codeground
- mobx
- Algorithm
- BFS
- Vue.js
- DFS
- Backtracking
- Today
- Total
목록전체 글 (89)
설모의 기록
Code Convention? 개발자라면 어느 언어를 사용하느냐에 관계없이 코드 컨벤션의 중요성을 알 것입니다. 코드 스타일이 다른 사람들과 협업을 하다보면 코드를 구현하는 시간보다 동료의 코드를 이해하는 시간이 더 오래 걸립니다. for문의 body를 감싸는 괄호를 한 줄 띄우냐, 안 띄우냐로도 신경쓰이기 때문이죠. 코드 컨벤션은 기본적으로 언어마다 지켜야 할 규칙이 있지만 그 이외의 부분에서는 팀원들과 상의하여 규칙을 모두 정해야 합니다. 코드 컨벤션 규칙을 정하고 협업을 시작하면 코드를 읽는데에도, 유지보수하는데에도 상대적으로 적은 시간이 걸립니다. 오늘 제가 우아한테크캠프에서 배운 간단한 코드 컨벤션은 아래와 같습니다. 1. 클래스 명은 대문자로, 메소드 명은 소문자로 시작하기public clas..
빌더 패턴(Builder Pattern)안드로이드 프로젝트 또는 자바 프로젝트를 진행하다보면 많은 라이브러리를 사용하게 되는데요. 라이브러리에서 제공하는 객체를 사용할 때 빌더 패턴이 자주 보입니다. 예전에는 그냥 구현한 코드인 줄 알았는데, 여러 곳에서 똑같은 패턴을 사용하는 것을 보고 공부하게 되었습니다. 서버와 HTTP 통신을 하기 위해 사용하는 라이브러리인 Retrofit2를 사용할 때에도 빌더 패턴을 이용하게 됩니다. 그렇다면 빌더 패턴은 무엇일까요? 클래스 작성객체지향 프로그래밍 언어를 사용하면 클래스를 사용해 객체의 틀을 정의하게 되는데요. 흔히 작성하는 클래스 코드 예제를 살펴보겠습니다. 123456789101112131415161718192021222324252627public class..
이 문제는 상, 하, 좌, 우로 1칸씩 이동하거나 말처럼 입력받은 K번만큼만 (상, 하) (좌, 우)로 두칸 또는 한칸씩 움직여 오른쪽 아래칸으로 이동하는데에 걸리는 시간을 구하는 문제입니다. 처음엔 DFS로 푸는게 더 간단할거라 생각해서 DFS로 풀다가 시간초과를 해결하지 못해 BFS로 방법을 바꿔 풀었습니다. 이번에는 계속 틀리길래 다른 분들의 코드를 검색해봤지만 로직이 뭐가 다른건지를 이해를 못했습니다T^T 2일동안 답답해하다 오류를 발견했는데, 저는 길을 찾지 못할 때 지금까지 걸린 시간을 출력해주고 있었습니다. -1을 반환해주는 코드로 바꾸니 맞았습니다. 너무 허탈하네요.. 기본 BFS에서 사용하는 dx, dy 배열을 12 길이의 배열로 바꾸고 for문에서 인덱스가 4보다 작을 때와 클 때를 나..
이 문제는 DFS와 Backtracking을 이용해 중복되지 않은 알파벳은 방문하지 않는 조건으로 (0, 0) 에서 갈 수 있는 경로의 최대거리를 구하는 문제입니다. 저는 char 자료형 특징을 이용할 생각을 못하고 지금까지 지나온 알파벳을 ArrayList에 저장해 다음 경로로 갈 때마다 체크해주는 코드로 짜봤는데요. 시간이 8000ms가 넘길래 너무 놀라서 검색해봤는데 char 자료형을 이용하면 훨씬 수월하게 탐색할 수 있는 방법이 있었습니다. 아래에 비효율적으로 짠 코드와 최적화한 코드를 차례로 첨부하겠습니다. 우선 대문자 알파벳이기 때문에 'A' ~ 'Z' 까지가 범위가 되며 int형으로 바꾸면 65 ~ 90이 됩니다. 그래서 저는 check 배열의 인덱스를 (입력 알파벳 - 'A' ) 이라 생각..