코딩 71

[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (41~48번 문제풀이)

41. 공 던지기 class Solution { public int solution(int[] numbers, int k) { int answer = 1; for(int i=1; inumbers.length) answer -= numbers.length; } return answer; } } 던지는 사람은 1번째부터 시작하기 때문에 answer을 1로 초기화해 주었다. 42. 배열 회전시키기 class Solution { public int[] solution(int[] numbers, String direction) { int[] answer = new int[numbers.length]; if(direction.equals("right")){ for(int i=0; i

[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (33~40번 문제풀이)

33. 진료순서 정하기 class Solution { public int[] solution(int[] emergency) { int[] answer = new int[emergency.length]; for(int i=0; i 0){ answer = 1; }else { answer = 4; } } if(dot[0] 0){ answer = 2; }else { answer = 3; } } return answer; } } x좌표가 0보다 클 때, 작을때로 한번 나눴고 내부에서 y좌표가 0보다 클때, 작을 때의 조건문을 넣어서 값에 맞는 1, 2, 3, 4분면으로 반환해 주었다. 40. 2차원으로 만들기 class Solution { public int[][] solution(..

[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (25~32번 문제풀이)

25. 짝수 홀수 개수 class Solution { public int[] solution(int[] num_list) { int[] answer = new int[2]; int cnt=0; int cnt2=0; for(int a : num_list){ if(a%2 == 0) cnt++; else cnt2++; } answer[0] = cnt; answer[1] = cnt2; return answer; } } num_list의 원소들을 하나씩 꺼내서 a에 넣어주었고 값을 검증했다. 만약 짝수면 cnt를 1 증가, 홀수면 cnt2를 1 증가시켜서 각각의 개수를 구한 뒤 answer에 넣어주었다. 26. 문자 반복 출력하기 class Solution { public String solution(String..

[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (20~24번 문제풀이)

20. 아이스 아메리카노 class Solution { public int[] solution(int money) { int[] answer = new int[2]; answer[0] = money / 5500; answer[1] = money - (answer[0] * 5500); return answer; } } 첫번째 배열값에는 돈에서 5500을 나눠서 마실수있는 아메리카노 잔수를 구했다. 두번째 배열값에는 money에서 사고남은 잔돈을 받아오도록 하였다. 21. 나이 출력 class Solution { public int solution(int age) { int answer = 0; answer = 2022 - age + 1; return answer; } } 2022기준이니 2022에서 나이를..

[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (14~19번 문제풀이)

14. 짝수는 싫어요 import java.util.ArrayList; import java.util.List; class Solution { public int[] solution(int n) { List answerList = new ArrayList(); for(int i = 1; i= 100000){ answer = (int)(price * 0.95); } else{ answer = price; } return answer; } } if-else 문으로 풀이하였다. 가격이 50만 원 이상이면 가격의 80 퍼만큼 지불, 30만 원 이상이면 90 퍼만큼 지불, 10만 원 이상이라면 95퍼만큼 지불하도록 하였고 10만원 미만일시에는 물건의 원래 가격만큼 반환하도록 하였다.

[Spring] 스파르타코딩클럽 Spring공부(6) - OAuth, 단위테스트, 통합테스트, 예외처리관리

카카오 로그인 탄생배경 - 모든 웹 사이트에서 회원가입을 거치는 것은 사용자에게 부담이 된다. 매번 번거로운 회원가입 과정을 수행해야 할 뿐 아니라, 웹사이트마다 다른 아이디와 비밀번호를 기억해야 한다. 또한 웹사이트를 운영하는 측에서도 역할이 부담이 된다. 이런 문제를 해결하기 위해 OAuth를 사용한 소셜 로그인이 등장하게 됐다. OAuth OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로써 사용되는, 접근 위임을 위한 개방형 표준입니다. 사용자가 애플리케이션에게 모든 권한을 넘기지 않고 사용자 대신 서비스를 이용할 수 있게 해주는 HTTP 기반의 보안 프로토콜이다. 카카오 로그인 사..

[Spring] 스파르타코딩클럽 Spring공부(5) - Validation, Entity 관계

Validation Spring에서는 null 확인 뿐 아니라 문자의 길이 측정과 같은 다른 검증 과정도 쉽게 처리할 수 있도록 Bean Validation을 제공하고 있다. - 간편하게 사용할 수 있는 여러 애너테이션을 제공해 준다. @NotNull - null 불가 @NotEmpty - null, "" 불가 @NotBlank - null, "", " " 불가 @Size - 문자 길이 측정 @Max - 최댓값 @Min - 최솟값 @Positive - 양수 @Negative - 음수 @Email - E-mail 형식 @Pattern - 정규 표현식 implementation 'org.springframework.boot:spring-boot-starter-validation' 위 코드를 build.gra..

[Spring] 스파르타코딩클럽 Spring공부(4) - 인증/인가, 쿠키/세션, 필터

Bean 수동등록 Bean 수동 등록은 어제 사용될까? 기술적인 문제나 공통적인 관심사를 처리할 때 사용되는 객체들을 수동으로 등록하는 것이 좋다. - @Component를 사용하면 @ComponentScan에 의해 자동으로 스캔되어 해당 클래스를 Bean으로 등록해 준다. - 일반적으로 @Component를 사용하여 Bean을 자동등록으로 하는 것이 좋다. Bean 수동등록이 사용되는 경우 - 공통 로그처리와 같은 비즈니스 로직을 지원하기 위한 부가적이고 공통적인 기능들을 기술 지원 Bean이라 부르고 수동등록 한다. - 비즈니스 로직 Bean보다는 그 수가 적기 때문에 수동으로 등록하기 부담스럽지 않다. - 수동등록된 Bean에서 문제가 발생했을 때 해당 위치를 파악하기 쉽다는 장점이 있다. @Con..

[Spring] 스파르타코딩클럽 Spring공부(3) - 3 Layer Architecture, JPA

3 Layer Architecture - 한 개의 클래스에 너무 많은 양의 코드가 존재할때 이해하기가 어려울때 - 코드의 추가 혹은 변경 요청이 곗고 들어올때 - 문제가 발생했는데 해당 클래스를 구현한 개발자가 퇴사하여 유지보수가 어려울때 위와 같은 상황에서 문제를 해결하기 위해 서버 개발자들은 서버에서 처리과정이 대부분 비슷하다는 것을 깨닫고, 처리과정을 크게 Controller, Service, Repository 총 3개로 분리하였다. Controller - 클라이언트의 요청을 받는다. - 요청에 대한 로직 처리는 Service에게 전담한다. (Request 데이터가 있다면 함께 전달) - Service에서 처리 완료된 결과를 클라이언트에게 응답한다. Service - 사용자의 요구사항을 처리(비즈..

프로필사진

남건욱's 공부기록

반응형