[프로그래머스_1] 모의고사 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public List solution(int[] answers) { List answer = new ArrayList(); int[] score = {0, 0, 0}; int[][] supoja = { {1, 2, 3, 4, 5}, {2, 1, 2, 3, 2, 4, 2, 5}, {3, 3, 1, 1, 2, 2, 4, 4, 5, 5} }; int idx_1 = 0, idx_2 = 0, idx_3 = 0; int len_1 = supoja..
토비의 스프링 부트 - 스프링 부트 살펴보기
·
공부/Spring
스프링 부트 소개 스프링 부트는 스프링을 기반으로 실무 환경에 사용 가능한 수준의 독립실행형 애플리케이션을 복잡한 고민 없이 빠르게 작성할 수 있게 도와주는 여러가지 도구의 모음이다. 즉, 스프링 부트는 스프링을 기반으로 한 프레임워크이자 라이브러리이다. 프레임 워크 소프트웨어 개발자가 응용 소프트웨어의 표준 구조를 구현하기 위해 사용하는 소프트웨어 프레임워크로 구성된다. 즉, 프로그래밍에서 특정 운영체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리의 모임이다. 재사용할 수 있는 수많은 코드를 프레임워크로 통합함으로써 개발자가 새로운 애플리케이션을 위한 표준 코드를 다시 작성하지 않아도 된다. - 출처 : 위키백과 라이브러리 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발..
[프로그래머스_1] 삼총사 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE class Solution { public int solution(int[] number) { int answer = 0; for(int i = 0; i < number.length; i++) { for(int j = i+1; j < number.length; j++) { for(int k = j + 1; k < number.length; k++) { if(number[i] + number[j] + number[k] == 0) answer++; } } } return answer; } } 쉬운 난이도..
[프로그래머스_1] 두 개 뽑아서 더하기 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public TreeSet solution(int[] numbers) { TreeSet answer = new TreeSet(); for(int i = 0; i < numbers.length; i++) { for(int j = i+1; j < numbers.length; j++) { answer.add(numbers[i] + numbers[j]); } } return answer; } } HashSet 자료구조를 이용할까 하다가 오름차..
[프로그래머스_1] 시저암호 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE class Solution { public String solution(String s, int n) { StringBuffer answer = new StringBuffer(); boolean isUpper = false; char alphabet = ' '; int len = 0; for(int i = 0; i < s.length(); i++) { len = n; if(s.charAt(i) == ' ') { answer.append(" "); continue; } else if(Character...
[프로그래머스_1] 예산 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public int solution(int[] d, int budget) { int answer = 0; Arrays.sort(d); if(d[0] > budget) return 0; for(int i = 0; i = d[i]) { budget -= d[i]; answer++; } } return answer; } } 이번 문제는 가진 예산에서 '최대한 많은 부서'에게 지원한다는 맥..
[프로그래머스_1] 이상한 문자 만들기 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public String solution(String s) { StringBuffer sb = new StringBuffer(); int idx = 0; for(int i = 0; i < s.length(); i++) { if(s.charAt(i) == ' ') { sb.append(" "); idx = 0; continue; } if(idx % 2 == 0) sb.append(Character.toUpperCase(s.charAt(i..
[프로그래머스_1] 3진법 뒤집기 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public int solution(int n) { int answer = 0; StringBuffer sb = new StringBuffer(Integer.toString(n, 3)); sb.reverse(); answer = Integer.parseInt(sb.toString(), 3); return answer; } } 문제 난이도가 쉬운 편이라 설명은 생략! 실행 결과
[프로그래머스_1] 최대공약수와 최소공배수 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE class Solution { public int[] solution(int n, int m) { int[] answer = {0, 0}; answer[0] = gcd(n, m); answer[1] = (n * m) / answer[0]; return answer; } public int gcd(int a, int b) { if(a % b == 0) { return b; } return gcd(b, a%b); } } 유클리드 호제법을 이용해 풀이했다. 실행 결과
[백준] 12891_DNA 비밀번호 - JAVA
·
알고리즘/알고리즘 유형
백준_12891 12891번: DNA 비밀번호 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA” www.acmicpc.net 슬라이딩 윈도우 슬라이딩 윈도우 알고리즘은 두 개의 포인터로 범위를 지정한 다음, 그 범위를 유지한 채로 이동하며 문제를 해결한다. 예를들면, 슬라이딩 윈도우의 배열이 3인 슬라이딩 윈도우의 첫 번째 for문 범위는 아래와 같다. 그 다음 반복일 때는 슬라이딩 윈도우가 옆으로 이동하여 아래 그림과 같이 범위가 지정된다. 슬라이딩 윈도우의 범위만큼만 탐색을 진행하기 때문에 O(n)의 시간 복잡도로 문제를 해결할 수 있다. 코드..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Catalogs and Orders Microservice_4
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Orders Microservice 기능 마이크로서비스 URI(API Gateway 사용 시) HTTP Method 상품 목록 조회 Catalogs Microservice /catalog-service/catalogs GET 사용자 별 상품 주문 Orders Microservice /order-service/{user_id}/orders POST 사용자 별 주문 내역 조회 Orders Microservice /order-service/{user_id}/orders GET 프로젝트 생성 강의에서는 Spring Boot 버전을 2.4.2를 선택했고, 나는 3.0.4 버전을 선택했다. Model Mapper 라이브러리 추가 build.gra..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Catalogs and Orders Microservice_3
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Catalogs Microservice 프로젝트 생성 강의에서는 스프링부트 버전을 2.4.2로 선택, 나는 3.0.3으로 선택했다. build.gradle ModelMapper dependancy 추가 implementation 'org.modelmapper:modelmapper:2.4.2' application.yml server: port: 0 spring: application: name: catalog-service h2: console: enabled: true settings: web-allow-others: true path: /h2-console jpa: hibernate: ddl-auto: create-drop show..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Catalogs and Orders Microservice_2
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Users Microservice - 사용자 조회 User의 전체 사용자 목록과 상세 정보 보기 기능을 추가해보자. UserController의 각 메서드 uri 매핑 주소에 prefix 격으로 '/user-service/'가 들어간다. 그러므로 클래스 블럭에 있는 @RequestMapping() 어노테이션에 해당 uri를 기재하고, 각 메서드 XXXMapping()에 적혀있는 '/user-service/'는 지워주자. @RequestMapping("/user-service/") public class UserController { ... } ResponseUser vo에 회원 주문 목록을 볼 수 있도록 필드를 하나 추가한다. 아직 R..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Catalogs and Orders Microservice_1
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Users Microservice와 Spring Cloud Gateway 연동 Controller에서 port 출력 @GetMapping("/health_check") public String status() { return String.format("It's Working in User Service on PORT %s", env.getProperty("local.server.port")); } apigateway-service 프로젝트 route 정보 입력 application.yml routes: - id: user-service uri: lb://USER-SERVICE predicates: - Path=/user-service/..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Users Microservice-1-2
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Users Microservice - JPA① build.gradle_validation dependency 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' VO 생성 @Data public class RequestUser { @NotNull(message = "Email cannot be null") @Size(min = 2, message = "Email not be less than two characters") @Email private String email; @NotNull(message = "Name cannot be null") @Si..