728x90
반응형
SMALL

2024/02 41

프로그래머스) 예산 Lv1

각각 부서마다 필요한 물품을 예산 안에서 최대한 많이 뿌리는 코딩문제! 부서별로 신청한 금액을 배열로 정렬한 뒤 예산보다 초과 시 break 만 걸어주면 해결되는 문제! 쉽게 푼 문제라 뭔가 기분이 좋았다 ㅎㅎ 정답 import java.util.*; class Solution { public int solution(int[] d, int budget) { int answer = 0; int cur = 0; Arrays.sort(d); // cur : 모두 더한 값 // answer : 모두 더한 횟수 for(int i=0; i budget) break; else answer++; } return answer; } } 출처 프로그래머스 - https://school.programmers.co.kr/lea..

코딩 테스트 2024.02.07

프로그래머스) 키패드 누르기 Lv1

역시 카카오 래벨 1 문제도 호락호락하지 않다 스마트폰의 각각 키패드 왼손과 오른손 번호를 모두 L과 R로 셋팅을 했다. 그리고 맨 처음 숫자를 클릭할 때 오른손과 왼속을 셋팅까지 했다. import java.util.*; class Solution { public String solution(int[] numbers, String hand) { String answer = ""; // 현재 숫자를 담을 변수 int cur = 0; // 각 숫자간의 거리 정하기 Map checkNo = new HashMap(); for(int i=0; i

코딩 테스트 2024.02.07

[SPRING] 스프링 프레임워크의 처리 흐름

예전 기술면접을 볼 때 스프링 프레임워크의 처리 흐름에 대해 질문을 받았었는데 필터나 인터셉터 등의 처리과정들을 제대로 답변하지 못했던 기억이 있어서 한번 정리해봅니다! ● 필터(Filter – 서블릿 필터라고도 함) 디스패처 서블릿에 요청이 전달되기 전/후의 모든 요청에 대해 인코딩, 보안, 로깅 등의 부가작업을 처리되고, 스프링 범위 밖에서 처리가 되며 web.xml에서 설정을 합니다. 역할 : 인코딩, 보안, 로깅 등의 부가작업 ● 디스패처 서블릿(Dispacher Servlet) 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러입니다. 역할 : 요청에 대한 적합한 컨트롤러 선택 ● 인터셉터(Interceptor) 디스패처 서블릿이 컨트롤러를 호출하기 전과 후의 요청과 응답을..

개발지식 2024.02.07

프로그래머스) 숫자 문자열과 영단어

너무 쉽게 푼 문제라 정리안하고 넘어가려고 했는데 다른 사람 풀이를 보고 감동을 먹어서 블로그에 끄적끄적 하는 중... 솔직히 저는 너무 단순해서 import java.util.*; class Solution { public int solution(String s) { s= s.replace("one", "1"); s= s.replace("two", "2"); s= s.replace("three", "3"); s= s.replace("four", "4"); s= s.replace("five", "5"); s= s.replace("six", "6"); s= s.replace("seven", "7"); s= s.replace("eight", "8"); s= s.replace("nine", "9"); s= s..

코딩 테스트 2024.02.07

프로그래머스) 약수의 개수와 덧셈 Lv1

요즘 코테 자신감이 떨어져서 자신감회복용으로 쉬운 문제들을 풀어나가고 있다(효과가 있을지도?!) 약수의 개수에 따라 해당 숫자를 더할지 뺄지를 결정하는 문제인데 나는 약수의 갯수를 구하는 메서드를 새로 하나 추가해서 boolean 값을 받아올 수 있게끔 만들었다! 정답 class Solution { public int solution(int left, int right) { int answer = 0; for(int i=left; i

코딩 테스트 2024.02.06

프로그래머스) 두 개 뽑아서 더하기 Lv1

손풀기 문제로 쉬워보이는 문제를 뽑아서 풀었는데 ArrayList 중복 제거 방법을 만들어보려고 하다가 살짝 헤맸다... 이 문제는 각각 순서대로 ① 더한 값들을 모두 ArrayList에 저장 ② ArrayList 중복 제거 ③ ArrayList 값 배열에 넣기 ④ 배열 정렬 위 방식대로 문제를 해결했다 되게 정석적이고 쉬운 방식이긴한데 소스가 길어져서 다른 훌륭한 답변이 있나 다른 분들 답을 구경했는데 세상에.... 리턴 타입을 바꿔도 정답으로 처리가 된다 흠.... 그렇다면 내꺼 소스도 굳이 ArrayList를 배열로 변환하지 않아도 됬었겠다 생각이 들었다 ㅎㅎ 코테 문제는 문제를 풀고 다른 사람들은 어떻게 문제를 풀었는지 구경하는게 재밌는거같다! 정답 import java.util.*; import..

코딩 테스트 2024.02.06

[SPRING] 스프링 컨테이너(Spring Container)란?!

스프링 컨테이너(Spring Container)란?! ApplicationContext 를 스프링 컨테이너라고 합니다. 스프링 컨테이너는 @Configuration 이 붙은 AppConfig 를 설정(구성) 정보로 사용합니다. 여기서 @Bean 이라 적힌 메서드를 모두 호출하여 반환된 객체를 스프링 컨테이너에 등록합니다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 합니다. // 스프링 컨테이너 생성 ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); 일반적으로 'IOC 컨테이너' 와 '스프링 컨테이너'는 동일한 의미로 사용됩니다. IOC 컨테이너는 Inversion Of Control(제어의..

개발지식 2024.02.05

[SPRING] DI(Dependency Injection) 의존관계 주입, DI 컨테이너

DI 의존관계 주입 객체 간의 의존성을 외부에서 주입하여 결합도를 낮추고 유연한 코드를 작성하는 방법입니다! DI(Dependency Injection) 는 객체 간의 의존 관계를 외부에서 결정하여 객체가 필요한 의존성을 주입받는 개념입니다. DI 를 통해 객체 간의 결합도를 낮출 수 있고, 코드의 재사용성과 테스트 용이성을 높일 수 있습니다. DI 는 주로 생성자, 메서드 매개변수, 속성에 의해 의존성을 주입하며, 의존성을 관리하는 컨테이너를 활용하여 객체의 생성과 관리를 담당합니다. 이를 통해 유연하고 확장 가능한 애플리케이션을 개발할 수 있습니다! 스프링 DI를 코드 예시를 통해 확인을 해보자! public interface MessageService { void sendMessage(String ..

개발지식 2024.02.05

[SPRING] IOC(Inversion of Control) 제어의 역전

IOC 제어의 역전 프레임워크가 내 코드를 대신 호출해 주는 것, 말 그대로 제어권이 뒤바뀌는 것을 제어의 역전이라고 합니다. 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했습니다. 한마디로 구현 객체가 프로그램의 제어 흐름을 스스로 조종했으며 개발자 입장에서는 자연스러운 흐름이였습니다. 하지만 IOC(Inversion of Control)는 일반적인 객체의 생명주기를 개발자가 직접 관리하는 것이 아닌, 스프링 프레임워크가 객체의 생성과 관리와 같은 프로그램의 제어 흐름을 관리하는 것을 제어의 역전(IOC)이라 합니다. 프레임워크 VS 라이브러리 ● 프레임워크가 내가 작성한 코드를 제어하고, 대신 실행하면 그것은 프레임워크가 맞다 ● 반면에 내가 작성한..

개발지식 2024.02.05

프로그래머스) K번째 수 Lv1

배열 안 특정 범위 내에서 정렬은 한 뒤 k 번째 수를 구하는 문제! 배열의 범위를 자르는 방법에 대해서 이것저것 쑤시고, commands 랑 같이 사용하려고 하다보니 for문이 4개나 중첩되어가고 있었다... 이건 나도 보기 어렵고 아무리 잘쳐줘도 정답은 아닌 것 같아 고민을 좀 하다 힌트(질문하기)를 사용했다 참고한 내용 중 commands에 나오는 시작번호, 끝번호, 선택 번호를 변수로 두고 배열과 함께 처리하는 메서드를 만들어서 처리하는 방법을 확인하고 문제를 해결하였다! 그리고 다른 사람들은 어떻게 풀었나 확인을 해보니 배열을 정렬하는 함수 Arrays.copyOfRange 를 사용하여 문제를 풀었드라.... Arrays.copyOfRange(array, commands[i][0]-1, comm..

코딩 테스트 2024.02.05
728x90
반응형
LIST