분류 전체보기
-
[알고리즘] 시간 복잡도카테고리 없음 2025. 1. 5. 22:58
코드트리에서 문제 풀다가 모르는 게 생겨서 지선생님께 여쭤봤다까묵지말것 기본 개념배열 값의 삽입 O(N)배열 값의 삭제 O(1)배열에서의 값 검색O(N)K번째 원소 구하기 O(1)1. 배열의 맨 뒤 데이터를 삭제하면 시간복잡도는 O(1)이 될 것이다.정답: 맞음설명: 배열의 마지막 데이터를 삭제하는 작업은 단순히 해당 데이터를 제거하면 되는 작업이므로 추가적인 데이터 이동이 필요하지 않습니다. 따라서 시간복잡도는 O(1)입니다.2. 배열에서 특정 데이터를 맨 앞에 삽입하게 된다면 시간복잡도는 O(1)이 될 것이다.정답: 틀림설명: 배열의 맨 앞에 데이터를 삽입하면 기존의 모든 데이터를 한 칸씩 뒤로 이동시켜야 합니다. 이 작업은 배열의 크기에 비례하는 연산이 필요하므로 시간복잡도는 O(N)입니다.3. 정..
-
워밍업 클럽 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..