Algorithm
-
[코드트리 조별과제] 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) ..
-
[Java] 카펫Algorithm/프로그래머스 2023. 4. 4. 11:24
1. 문제 📚 https://school.programmers.co.kr/learn/courses/30/lessons/42842 2. 입출력 예 📋 3. 알고리즘 ✅ 노란색의 개수에 따라서 갈색의 개수가 달라지기때문에 노란색의 개수가 우선이라고 생각했다! 조건에서 가로의 개수가 더 길다고 나와있었으므로 조건절에 넣어서 노란색의 격자를 구해줬다. 1. 노란색 가로 세로 구하기 2. 갈색 가로 세로는 각각 노란색가로 + 2 노란색세로 +2 이다. 3. 갈색 가로 * 갈색 세로가 파라미터로 주어진 노란색 + 갈색 과 같은지 체크 (중요) 4. 소스코드 💻 import java.util.*; class Solution { static int width, height; public int[] solution(in..
-
[Python] 11501 주식Algorithm/백준 2023. 2. 16. 17:37
1. 문제 📚 https://www.acmicpc.net/problem/11501 11501번: 주식 입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타 www.acmicpc.net 2. 입출력 예 📋 3. 알고리즘 ✅ 입력값이 큰 것을 보고 그리디인가 dp인가 생각해보다가 제일 큰 값에 팔면 최대 이익이 나오므로 -> 그리디 라고 생각하였다 처음엔 앞에서부터 차근차근 순회해가면서 하는 로직으로 짰지만 80퍼쯤에서 시간초과가 났다. 앞에서 순회하게 되면 리스트를 잘라주는 작업을 계속해주어야했다. 왜냐면 7, 6, 9, 1, 6 이라면 7, 6 은 9..