오전 10시경 Spring 기초부터 다시 시작하다
Spring 기초부터 차근차근 시작하기 위해 오늘부터 강의를 새로 듣기 시작했다.
그 이유는 어제 기록을 찾아보면 될 것 같다. 94일차_튜터님 피드백(모험 3일차)
그리고 오후에 강의를 정리하여 T.S.L에 작성했다.
오후 2시경 "K번째 수" 알고리즘 문제를 풀다
5만명이 이 문제를 통과 했으니 침착하자.. 침착하게 풀면 1시간안에 풀 수 있을 것이다.
배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수 구하기
[i, j, k]
1. [i-1, k]자르고 정렬
2. 배열에서 [k-1]번째 수 뽑기
이거를 _번 반복해서 숫자 _개를 배열에 넣기
1차 풀어쓰기
# 풀어쓰기
array = [1, 5, 2, 6, 3, 7, 4]
commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]]
a = sorted(array[2-1:5])[3-1]
b = sorted(array[4-1:4])[1-1]
c = sorted(array[1-1:7])[3-1]
d = [a, b, c]
print(d)
2차 풀어쓰기
# 풀어쓰기
array = [1, 5, 2, 6, 3, 7, 4]
commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]]
answer = []
def solution(array, commands):
for i in range(len(commands)) :
# commands의 각 원소는 길이가 3이므로
#[i][0], [i][1], [i][2]로 뒤에는 숫자로 지정할 수 있다!!
# print("첫번째", commands[i][0])
# print("두번째",commands[i][1])
# print("세번째", commands[i][2])
a = commands[i][0]
b = commands[i][1]
c = commands[i][2]
answer.append(sorted(array[a-1:b])[c-1])
return answer
print(solution(array, commands))
최종 제출
answer = []
def solution(array, commands):
for i in range(len(commands)) :
a = commands[i][0]
b = commands[i][1]
c = commands[i][2]
answer.append(sorted(array[a-1:b])[c-1])
return answer
역시 나는 풀어써야 하는건가.. 팀원이 먼저 해결해서 나도 풀어야 하는데 조바심이 났었다.
그렇게 30분동안 헤매다가 침착하게 풀어서 정리하자 해서 풀어썼는데
바로 성공을 해버려서 우리에게만 주어진 제한시간 1시간안에 풀었다.
근데 팀원은 점수를 3점 주고 나는 5점받고 문제 푸는 것 마다 점수가 다른 것 같다.
어제는 12점받았는데 🤔
Best code
def solution(array, commands):
return list(map(lambda x:sorted(array[x[0]-1:x[1]])[x[2]-1], commands))
Best code를 보니 나도 lambda를 배워서 한 줄로 표현해야 하나 싶었다..
이렇게 한 줄로 끝날 수 있다니..
오후 4시경 Spring 강의 중 Build하기 문제에 부딪히다
강의에서는 OS 기준으로 설명하셔서 실제 작성법은 첨부파일로 파악해야했는데
나는 이해하지 못해서 구글링을 해봤다.
# 1)
경로: 프로젝트 파일 위치로 이동
# 2)
./gradlew.bat build
# 3) 에러가 날 경우(빌드된 파일 지웠다가 다시 빌드 실행)
./gradlew.bat clean build
# 4)
cd libs 입력 후 hello-spring-0.0.1-SNAPSHOT.jar 파일이 있는지 확인
# 5)
java -jar hello-spring-0.0.1-SNAPSHOT.jar 로 자바 실행
# 6)
# * 서버 종료: ctrl + c
# 3) 에러
나는 ./gradlew.bat clean build를 입력해도 에러가 떴다.
Execution failed for task ':compileJava'.
> invalid source release: 11
라는 오류가 떴는데 그 이유는 JDK 버전과 project language level이 달라서 생기는 에러이다.
File → Project Structure에 들어가서 수정을 하려고 했다.
내가 찾은 블로그에서는 Project language level을 SDK default로 설정을 했지만 default 값이 없었다.
![](https://blog.kakaocdn.net/dn/bgm7Jn/btrn4qI1ZRf/cjsqt6MBYdPYHeKhyK5WC0/img.png)
방법을 몰라서 튜터님께 여쭤봤고 아래처럼 Project SDK를 11로 변경했다.
![](https://blog.kakaocdn.net/dn/EOdbu/btrn55q7CHe/1ykF9yVd7VUwPV29pj7OJk/img.png)
그래도 여전히 에러가 나왔고 결과적으로는 아래 블로그 링크처럼 따라하면 실행된다.
![](https://blog.kakaocdn.net/dn/TQ5eU/btrn06xO5C3/wmmJ7rsTHBUjki09azqmd0/img.png)
![](https://blog.kakaocdn.net/dn/cIExl1/btrn7qH30L1/92Qbr5jTIpTVMtOSaf9rNk/img.png)
![](https://blog.kakaocdn.net/dn/nfJBe/btrn6QNJWmm/TI1V5YyFTkLp5GjJC8h801/img.png)
# 4) 수정
내가 참고한 블로그에서는 아래와 같이 cd libs 이후에 ll을 추가적으로 입력했다.
cd libs -> ll -> hello-spring-0.0.1-SNAPSHOT.jar 파일 확인
그런데 내가 입력했을 때 에러가 떠서 ls로 확인했더니
libs 폴더 안에 hello-spring-0.0.1-SNAPSHOT.jar가 있었다.
그래서 나는 ll을 생략했다.
<참고>
[Gradle] 터미널에서 빌드해서 실행하기 https://ppiyo5.tistory.com/30
JDK 버전과 project language level이 달라서 생기는 에러해결하기 https://sohee-dev.tistory.com/134
Gradle에 대해 더 알아보려면 >> [윈도우에 Gradle 설치와 간단 Sample 실행]
오후 9시경 오늘의 용어 정리는 "Javascript"
Javascript는 웹페이지에 생동감을 불어넣기 위해 만들어진 프로그래밍 언어이다.
오후 10시 이후
오늘은 Spring 강의를 이 전보다 많이 듣게 되었지만 처음부터 시작하다 보니
아직 프로젝트를 무난히 진행할 정도의 실력을 쌓지는 못했지만
이전 처럼 프로젝트를 하면서 배우는 것도 많은 것 같아 빨리 프로젝트를 진행해보고 싶다.
그리고 오늘 psycho 팀원은 무인도에 적응을 하신 것 같았다.
무인도에서 스파이더맨을 봐야한다며 세팅하러 자리를 비웠다.
그래서 오늘의 TIL과 오늘의 용어정리 그리고
이 전에 작성한 용어정리와 T.S.L에 보완해야할 부분들을 하지 않고 일찍 가버렸다.
서로 의지해가며 이 험난한 길을 뚫고 나아가야 하기 때문에
내일은 내일의 할 일이 있을 텐데 내일 할 것들과 미룬 일들을 다 끝낼 때까지 잠을 못자게 해야겠다. 😏
- 모험가 haedal
'TIL' 카테고리의 다른 글
99일차(모험 8일차_프로젝트 계획 짜기) (0) | 2021.12.20 |
---|---|
96일차(모험 5일차) - 프로젝트 틀 작성 (0) | 2021.12.17 |
94일차_튜터님 피드백(모험 3일차) (0) | 2021.12.15 |
93일차(모험 2일차) (0) | 2021.12.14 |
92일차(모험 1일차) (0) | 2021.12.14 |