분류 전체보기
-
워밍업 클럽 2기 BE 클린코드&테스트코드 DAY 4 미션카테고리 없음 2024. 10. 3. 22:41
보기 좋은 코드 작성법예외가 발생할 가능성 낮추기어떤 값의 검증이 필요한 부분은 주로 외부 세계와의 접점e.g) 사용자 입력, 외부 사용자 요청의도한 예외와 예상하지 못한 예외를 구분하기Null을 대하는 자세항상 NPE를 방지하는 방향으로 경각심을 가지기메서드 설계 시 return null을 자제하기Optional은 꼭 필요한 상황에서 반환 타입에 사용반환받았다면 최대한 빠르게 해소하기 강의내용을 바탕으로 리팩토링을 해보았다. 1. 리팩토링 하기리팩토링 전public boolean validateOrder(Order order) { if (order.getItems().size() == 0) { log.info("주문 항목이 없습니다."); return false; ..
-
-
[코드트리 조별과제] Dx, Dy 테크닉Algorithm 2024. 8. 18. 23:13
코딩테스트에 감이 떨어지기도 하고, 코테를 꾸준하게 도전하기 위해 코드트리 조별과제에 참여하게 되었다.내가 스스로 공부한 것을 조별과제에 참여할 겸, 기록에 남기기위해 정리하려고한다. dx, dy의 테크닉우리는 특정방향(동서남북)을 이동하려고 하는 것을 코드로 표현할 때, 아래와 같이 코드로 바꿔볼 수 있습니다. 0123dx10-10dy0-101방향 회전을 위한 dx, dy 정의 방법우리는 시계 방향으로 90도 회전을 하는 방법으로 dirNum을 1씩 증가시키는 방법을 사용할 수 있다.아래는 예시 코드이다.int[] dx = new int[]{1, 0, -1, 0};int[] dy = new int[]{0, -1, 0, 1};int dirNum = 1;int nx, ny; if (dirNum ==..
-
[코드트리 조별과제] 시뮬레이션Algorithm 2024. 8. 11. 21:48
코딩테스트에 감이 떨어지기도 하고, 코테를 꾸준하게 도전하기 위해 코드트리 조별과제에 참여하게 되었다.내가 스스로 공부한 것을 조별과제에 참여할 겸, 기록에 남기기위해 정리하려고한다. 시뮬레이션시뮬레이션이란, BFS나 재귀와 같이 특정 자료구조 또는 알고리즘에 종속되지 않고 주어진 문제 상황을 구현하면 되는데 이 때 구현이 빡세게 필요한 것들을 합쳐 시뮬레이션 유형의 문제라고 한다. 흐른 시간 계산https://www.codetree.ai/missions/5/problems/time-to-time?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표..
-
[코드트리 조별과제] 객체Algorithm 2024. 8. 4. 21:21
코딩테스트에 감이 떨어지기도 하고, 코테를 꾸준하게 도전하기 위해 코드트리 조별과제에 참여하게 되었다.내가 스스로 공부한 것을 조별과제에 참여할 겸, 기록에 남기기위해 정리하려고한다. 객체 정렬하기public class Main { public static class Student { String id; int score; public Student(String id, int score) { this.id = id; this.score = score; } } } 위에와 같이 Student라는 객체가 있고, Score를 기준으로 정렬을 하기 위해선 Comparable 인터페이스가 필요하다. Compara..
-
[코드트리 조별과제] 재귀함수Algorithm 2024. 7. 28. 17:12
코딩테스트에 감이 떨어지기도 하고, 코테를 꾸준하게 도전하기 위해 코드트리 조별과제에 참여하게 되었다.내가 스스로 공부한 것을 조별과제에 참여할 겸, 기록에 남기기위해 정리하려고한다. 재귀함수함수 f가 해당 함수를 구현하는 데 동일한 함수 f를 다시 이용하게 되는 것을 재귀함수 라고 부릅니다.재귀함수의 중요한 조건은 종료조건이다. 종료 조건을 적절하게 설정해줘야만, 재귀 함수는 올바르게 동작하게 된다. 값을 반환하지 않는 재귀함수값을 반환하는 재귀함수 이렇게 2가지로 나눌 수 있다. 1. 값을 반환하지 않는 재귀함수 값을 반환하지 않는 재귀함수의 대표적인 문제는 반복 출력하기 이다.https://www.codetree.ai/missions/5/problems/repeated-output-2/in..
-
[Java] 11726 2×n 타일링Algorithm/백준 2023. 8. 2. 13:46
1. 문제 📚 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 2. 입출력 예 📋 ㅁㄴㅇㅁㄴㅇ 3. 알고리즘 ✅ 1. 가짜문제 정의 dp[n] := 2*n 타일에 할 수 있는 경우의 수 2. 가장 작은 문제 해결하기 3. 점화식 세우기 dp[n] = dp[n - 1] + dp[n - 2] 4. 소스코드 💻 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReade..
-
[Java] H-indexAlgorithm/프로그래머스 2023. 4. 11. 11:38
1. 문제 📚 https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 입출력 예 📋 3. 알고리즘 ✅ 1. 정렬해서 가장 큰 숫자 구하기 2. 인용된 논문의 개수와 인용되지 않은 논문 개수 세기 3. h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값을 구하기 4. 소스코드 💻 import java.util.*; class Solution { public int solution(int[] citations) ..