https://school.programmers.co.kr/learn/courses/30/lessons/81301
— 문제 설명
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s
가 매개변수로 주어집니다. s
가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다.
숫자 | 영단어 |
---|---|
0 | zero |
1 | one |
2 | two |
3 | three |
4 | four |
5 | five |
6 | six |
7 | seven |
8 | eight |
9 | nine |
— 제한 조건
s
의 길이 ≤ 50s
가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다.s
로 주어집니다.— 입출력 예
s | result |
---|---|
"one4seveneight" | 1478 |
"23four5six7" | 234567 |
"2three45sixseven" | 234567 |
"123" | 123 |
입출력 예 #1
입출력 예 #2
입출력 예 #3
입출력 예 #4
s
에는 영단어로 바뀐 부분이 없습니다.— 제한 시간
• 정확성 테스트 : 10초
— 문제 풀이
class Solution {
public int solution(String s) {
StringBuilder sb = new StringBuilder();
/*
0 z+4
1 o+3
2 t+3(2 뒤가 o면 2)
3 t+5(2 뒤가 o아니면 3)
4 f+4(3 뒤가 r이면 4)
5 f+4(3 뒤가 r아니면 5)
6 s+3(2 뒤가 x면 6)
7 s+5(2 뒤가 x아니면 7)
8 e+5
9 n+4
*/
int i=0;
while(i<s.length()){
if(s.charAt(i)>='0'&&s.charAt(i)<='9') {
sb.append(s.charAt(i));
i++;
continue;
}
switch(s.charAt(i)){
case 'z':
sb.append("0");
i+=4;
break;
case 'o':
sb.append("1");
i+=3;
break;
case 't':
if(s.charAt(i+2)=='o'){
sb.append("2");
i+=3;
}else {
sb.append("3");
i+=5;
}
break;
case 'f':
if(s.charAt(i+3)=='r'){
sb.append("4");
i+=4;
}else {
sb.append("5");
i+=4;
}
break;
case 's':
if(s.charAt(i+2)=='x'){
sb.append("6");
i+=3;
}else {
sb.append("7");
i+=5;
}
break;
case 'e':
sb.append("8");
i+=5;
break;
case 'n':
sb.append("9");
i+=4;
break;
}
}
int answer = Integer.parseInt(sb.toString());
return answer;
}
}
https://school.programmers.co.kr/learn/courses/30/lessons/12915
— 문제 설명
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.
— 제한 조건
— 입출력 예
strings | n | return |
---|---|---|
["sun", "bed", "car"] | 1 | ["car", "bed", "sun"] |
["abce", "abcd", "cdx"] | 2 | ["abcd", "abce", "cdx"] |
입출력 예 1
"sun", "bed", "car"의 1번째 인덱스 값은 각각 "u", "e", "a" 입니다. 이를 기준으로 strings를 정렬하면 ["car", "bed", "sun"] 입니다.
입출력 예 2
"abce"와 "abcd", "cdx"의 2번째 인덱스 값은 "c", "c", "x"입니다. 따라서 정렬 후에는 "cdx"가 가장 뒤에 위치합니다. "abce"와 "abcd"는 사전순으로 정렬하면 "abcd"가 우선하므로, 답은 ["abcd", "abce", "cdx"] 입니다.
— 문제 풀이
import java.util.*;
class Solution {
class NewString implements Comparable<NewString>{
String str;
int n;
public NewString(String str, int n){
this.str = str;
this.n = n;
}
@Override
public int compareTo(NewString o){
if(this.str.charAt(n)==o.str.charAt(o.n)){
return this.str.compareTo(o.str);
}else {
return this.str.charAt(n) - o.str.charAt(o.n);
}
}
}
public String[] solution(String[] strings, int n) {
ArrayList<NewString> list = new ArrayList<>();
for(int i=0;i<strings.length;i++){
list.add(new NewString(strings[i], n));
}
Collections.sort(list);
String[] answer = new String[strings.length];
for(int i=0;i<strings.length;i++){
answer[i] = list.get(i).str;
}
return answer;
}
}
https://school.programmers.co.kr/learn/courses/30/lessons/42748
— 문제 설명
배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다.
예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면
배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요.
— 제한 조건
— 입출력 예
array | commands | return |
---|---|---|
[1, 5, 2, 6, 3, 7, 4] | [[2, 5, 3], [4, 4, 1], [1, 7, 3]] | [5, 6, 3] |
입출력 예 1
[1, 5, 2, 6, 3, 7, 4]를 2번째부터 5번째까지 자른 후 정렬합니다. [2, 3, 5, 6]의 세 번째 숫자는 5입니다.
[1, 5, 2, 6, 3, 7, 4]를 4번째부터 4번째까지 자른 후 정렬합니다. [6]의 첫 번째 숫자는 6입니다.
[1, 5, 2, 6, 3, 7, 4]를 1번째부터 7번째까지 자릅니다. [1, 2, 3, 4, 5, 6, 7]의 세 번째 숫자는 3입니다.
— 문제 풀이
import java.util.*;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for(int t=0;t<commands.length;t++){ // commands의 길이만큼 명령 반복
int[] tmp = new int[commands[t][1]-commands[t][0]+1]; // ex 2~5 == 5-2+1
for(int i=0;i<tmp.length;i++){
tmp[i] = array[commands[t][0]-1+i];
}
Arrays.sort(tmp);
answer[t] = tmp[commands[t][2]-1];
}
return answer;
}
}
https://school.programmers.co.kr/learn/courses/30/lessons/68644
— 문제 설명
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
— 제한 조건
— 입출력 예
numbers | result |
---|---|
[2,1,3,4,1] | [2,3,4,5,6,7] |
[5,0,2,7] | [2,5,7,9,12] |
입출력 예 1
[2,3,4,5,6,7]
을 return 해야 합니다.입출력 예 2
[2,5,7,9,12]
를 return 해야 합니다.— 문제 풀이
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
ArrayList<Integer> list = new ArrayList<>();
for(int i=0;i<numbers.length-1;i++){
for(int j=i+1;j<numbers.length;j++){
if(!list.contains(numbers[i]+numbers[j]))list.add(numbers[i]+numbers[j]);
}
}
Collections.sort(list);
int[] answer = new int[list.size()];
for(int i=0;i<answer.length;i++){
answer[i] = list.get(i);
}
return answer;
}
}
org.springframework.cloud:spring-cloud-config-server
org.springframework.cloud:spring-cloud-config
# github 예시
server:
port: 8888
spring:
cloud:
config:
server:
git:
uri: https://github.com/my-config-repo/config-repo
clone-on-start: true
spring:
application:
name: my-config-client
cloud:
config:
discovery:
enabled: true
service-id: config-server
eureka:
client:
service-url:
defaultZone: http://localhost:19090/eureka/
spring:
profiles:
active: dev
server:
port: 18080
spring:
profiles:
active: native
application:
name: config-server
cloud:
config:
server:
native:
search-locations: classpath:/config-repo
eureka:
client:
service-url:
defaultZone: http://localhost:19090/eureka/
server:
port: 19093
message: "product-service message"
server:
port: 19083
message: "product-service-local message"
org.springframework.cloud:spring-cloud-starter-config
spring:
application:
name: product-service
profiles:
active: local
config:
import: "configserver:"
cloud:
config:
discovery:
enabled: true
service-id: config-server
server:
port: 0
eureka:
client:
service-url:
defaultZone: http://localhost:19090/eureka/
message: "default message"
@RestController
public class ProductController {
@Value("${server.port}")
private String serverPort;
@Value("${message}")
private String message;
@GetMapping("/product")
public String getProduct() {
return "Product info From Port : " + serverPort + "and message : " + message;
}
}
# 추가
management:
endpoints:
web:
exposure:
include: refresh
docker run -d -p 9411:9411 openzipkin/zipkin
implementation 'io.github.openfeign:feign-micrometer'
implementation 'io.micrometer:micrometer-tracing-bridge-brave'
implementation 'io.zipkin.reporter2:zipkin-reporter-brave'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
management:
zipkin:
tracing:
endpoint: "http://localhost:9411/api/v2/spans"
tracing:
sampling:
probability: 1.0
ext {
set('querydslVersion', "5.0.0") // QueryDSL 버전 명시적으로 설정
}
dependencies {
implementation "com.querydsl:querydsl-jpa:${querydslVersion}:jakarta"
annotationProcessor "com.querydsl:querydsl-apt:${querydslVersion}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}
def querydslSrcDir = 'src/main/generated'
clean {
delete file(querydslSrcDir)
}
tasks.named('test') { useJUnitPlatform()}
@Component
public class OrderApplicationQueryDslConfig {
@Bean
JPAQueryFactory jpaQueryFactory(EntityManager em){
return new JPAQueryFactory(em);
}
}