전체 글 120

백준- [Silver III] 2×n 타일링 - 11726 (java)

문제 설명2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.입력첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)출력첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.  import java.util.*;import java.io.*;public class Main { public static void main(String [] args )throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ..

SW 마에스트로 (쏘마) 코테 도전 후기

공부하기 싫어서 써보는 쏘마 도전후기 🤓 때는 1월 .. 어느날 백수는 뭐라도 해야겠다 싶어서 무작정 부트캠프를 알아보게 됩니다 ~~ 쏘마랑 데브코스를 알아보게 되었는데요. 쏘마랑 데브코스는 상당히 다른 부트캠프였지만 쏘마가 데브코스보다 들어가기 어렵고 지원금이 높더라구요...ㅎㅎ 지원은 공짜니까 마인드로 도전해봤습니다. 1. 서류 쏘마 서류는 욕만 안쓰면 합격이라는 소문이 .. 그치만 면접까지 간다면 서류 토대로 발표해야하기때문에 신경써서 작성했습니다. 2. 1차 코테 프로그래머스에서 진행했고 테스트 코테 풀라고 연락이 오더라구요! 5문제를 2시간안에 풀어야하고 알고리즘 4 + sql 1 문제가 나왔습니다. 알고리즘 2 + sql 1 이렇게 풀었는데 오픈카톡방에서 3솔은 무조건 떨어질거라해..

회고 2025.04.05

백준 - [Silver III] 피보나치 함수 - 1003 (java)

문제 설명다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); }}fibonacci(3)을 호출하면 다음과 같은 일이 일어난다.fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다.fibonacci(2)는 fibonacci(1) (두 번째 호출)과 fibonacci(0)을 호출한다.두 번째 호출한 fib..

백준 - [Silver III] 1, 2, 3 더하기 - 9095 (java)

문제 설명정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.1+1+1+11+1+21+2+12+1+12+21+33+1정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다.출력각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. import java.util.*;import java.io.*;public class Main{ public static void main(String [] args)throws..

IoC, DI (without Spring)

IoC , DI 의 필요성SOLID 원칙에서 DIP 원칙(의존관계 역전 원칙)을 살펴보자추상화에 의존해야지, 구현체에 의존하면 안된다. (역할과 구현이 분리가 되어야함)class Service { void doSomething() { System.out.println("Service 동작"); }}class Client { private Service service = new Service(); // 직접 객체 생성 void execute() { service.doSomething(); }}❎ Client가 Service를 의존한다. → DIP 원칙 위배(Service 변경 시 Client 클래스도 변경되어야하기 때문)DIP를 위해서 IoC를 사용하면 ..

프로그래밍/CS 2025.04.01

[Silver III] 1로 만들기 - 1463 (java)

문제 설명정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.X가 3으로 나누어 떨어지면, 3으로 나눈다.X가 2로 나누어 떨어지면, 2로 나눈다.1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오.입력첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.출력첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. import java.util.*;import java.io.*;public class Main { public static void main(String [] args)throws IOException{ BufferedReader br = new B..

프로그래머스 - [level 3] [1차] 셔틀버스 - 17678 (java)

문제 설명셔틀버스카카오에서는 무료 셔틀버스를 운행하기 때문에 판교역에서 편하게 사무실로 올 수 있다. 카카오의 직원은 서로를 '크루'라고 부르는데, 아침마다 많은 크루들이 이 셔틀을 이용하여 출근한다.이 문제에서는 편의를 위해 셔틀은 다음과 같은 규칙으로 운행한다고 가정하자.셔틀은 09:00부터 총 n회 t분 간격으로 역에 도착하며, 하나의 셔틀에는 최대 m명의 승객이 탈 수 있다.셔틀은 도착했을 때 도착한 순간에 대기열에 선 크루까지 포함해서 대기 순서대로 태우고 바로 출발한다. 예를 들어 09:00에 도착한 셔틀은 자리가 있다면 09:00에 줄을 선 크루도 탈 수 있다.일찍 나와서 셔틀을 기다리는 것이 귀찮았던 콘은, 일주일간의 집요한 관찰 끝에 어떤 크루가 몇 시에 셔틀 대기열에 도착하는지 알아냈다..

프로그래머스 [Silver III] 통계학 - 2108 (java)

문제 설명수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자.산술평균 : N개의 수들의 합을 N으로 나눈 값중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값최빈값 : N개의 수들 중 가장 많이 나타나는 값범위 : N개의 수들 중 최댓값과 최솟값의 차이N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오.입력첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다.출력첫째 줄에는 산술평균을 출력한다. 소수점 이하 첫째 자리에서..

프로그래머스 - [level 2] 카펫 - 42842 (java)

문제 설명Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.제한사항갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다.노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다.카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다.입출..

프로그래머스 - [level 3] 이중우선순위큐 - 42628 (java)

문제 설명이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다.명령어수신 탑(높이)I 숫자큐에 주어진 숫자를 삽입합니다.D 1큐에서 최댓값을 삭제합니다.D -1큐에서 최솟값을 삭제합니다.이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요.제한사항operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다.operations의 원소는 큐가 수행할 연산을 나타냅니다.원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 둘 이상인 경우, 하나만 삭제합니다.빈 큐에 데이터를 ..