일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- while과 two-pointer
- toLowerCase()
- 최대공약수
- Git사용법
- 유클리드호제법
- 프로그래머스 레벨1
- sql 데이터형 변환
- addDoc
- StringBuilder
- 모던자바
- 자바 스트링
- ineer join
- 자바 유클리드
- 스프링
- replaceAll()
- git 컨벤션
- string
- 자바 최대공약수
- islowercase()
- 최소공배수
- 래퍼타입
- 스프링뼈대
- 최대공약수와 최소공배수
- stringbuilder의 reverse()
- 자바 최소공배수
- 동일성과 동등성
- 베주계수
- string과 stringbuilder
- 스프링환경설정
- isuppercase()
- Today
- Total
주노 님의 블로그
20240826 본캠프 31일차 TIL 본문
본캠프 31일차 내용 간단요약
- 09:00 ~ 10:00 : 코드카타
- 10:00 ~ 10:10 : 팀 회의
- 10:10 ~ 11:30 : 과제 개선
- 11:30 ~ 12:30 : 튜터님 인터뷰
- 12:30 ~ 13:30 : 점심시간
- 13:30 ~ 14:00 : 질문
- 14:00 ~ 15:30 : 과제 개선 및 포스트맨 개선
- 15:30 ~ 16:00 : 코드 리뷰 및 질문
- 15:00 ~ 18:00 : 개인과제 개선
- 18:00 ~ 19:00 : 저녁시간
- 19:00 ~ 21:00 : 튜터님 인터뷰 및 TIL 작성
조금만 더 버티면 과제 끝!
.
오늘 해야할 일 ✔️ 🔺 ❌
✔️ 개인 과제 마무리
상수야.. 넌 이것도 혼자서 못하냐..
문제 분석
빵 야채 고기 빵 순서로만 포장을한다
1 = 빵 / 2 = 야채 / 3 = 고기 순이다
정답을보니;
[2,1,1,2,3,1,2,3,1] >> 2
이고
2 1 1 2 3 1 2 3 1 > 중간 4개가 햄버거 하나고
2 1 2 3 1 > 이렇게 4개가 햄버거하나라서 총 2개인것같다
2개가 나온다
import java.util.*;
class Solution {
public int solution(int[] ingredient) {
int answer = 0;
StringBuilder sb = new StringBuilder();
for(int i : ingredient) {
sb.append(i);
if(sb.length() >= 4 && sb.substring(sb.length() - 4).equals("1231")) {
answer++;
sb.delete(sb.length() - 4, sb.length());
}
}
return answer;
}
}
스트링 빌더를 사용하는 방식을 사용하였다
쌓다가, 패턴이랑 맞으면 카운트하고 지우면된다
그리고 다른사람의 풀이를 보니
스택을 쌓더라
하긴... 내가 한 방식도 넣은순서대로 꺼내는거니까 스택의 방식도 되겠구나 싶었다
과제
과제9
권한 인가를 만들기 위해 user에 권한을 구분 해 줄 수 있는
엔티티에 권한을 enum으로 넣었다
과제10
엄청난 고민
일단 restTemplate는 이번 과제로 거의 처음 들어봤다
(다른것도 사실 똑같다)
일단 코드스니펫을 옮겨보았다.
public List<TaskWeatherDto> getWeather()
{
URI uri = UriComponentsBuilder
.fromUriString("대충링크")
.path("대충링크")
.encode()
.build()
.toUri();
ResponseEntity<String> responseEntity = restTemplate.getForEntity(uri, String.class);
return fromJSONtoItems(responseEntity.getBody());
}
대충 저런링크를 타고 들어가서 받은 파일을 받아서 날씨를 업로드해야한다
구렇다
이거 강의 코드 약간만 수정하면 되겠는데! 싶었지만... 마음만큼은 그렇게 되지 않았다..
대충 조회라도 해보려고 get에 넣고 돌려보았다
A JSONObject text must begin with '{' at 1 [character 2 line 1]
그래도 정상적으로 불러는 오나,
JsonObject형식은 { 이건데 넌 왜 [ 이걸썻냐 이말인거같다
https://jinsangjin.tistory.com/15#google_vignette
그래서 보니 JsonArray도 있길래 array를 사용하기로 했다
for(int i = 0 ; i<weathers.length() ; i++)
{
JSONObject jsonObject = weathers.getJSONObject(i);
if(jsonObject.get("date").equals("03-25"))
{
System.out.println("이거마따");
}
}
그래서 일단 테스트를 해봤다
당연히 뱉었다.
이 내용을 사용해서 쓰면될것같았다
음... 다만 for문을 계속 순회한다는게 엄청난 비효율이긴한디
저 api를 저장하고 쓰는게 낫긴한데 일단 요구사항만 지키자!
일단 내생각엔
task에 weather을 만들고
service에서 날짜와 맞는 weather만 받아오면 된다!
public List<TaskWeatherDto> fromJSONtoItems(String responseEntity) {
JSONArray weathers = new JSONArray(responseEntity);
List<TaskWeatherDto> taskWeatherDtos = new ArrayList<>();
for(int i = 0 ; i < weathers.length(); i++)
{
JSONObject object = weathers.getJSONObject(i);
taskWeatherDtos.add(new TaskWeatherDto(object));
}
return taskWeatherDtos;
}
일단 task를 list에 넣었다.
날짜랑 매칭되는 것만 받아오면 될것같다.
private String findTodayWeather(List<TaskWeatherDto> taskWeatherDtos)
{
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("MM-dd");
String date = LocalDate.now().format(dateFormatter);
String weather = "";
for(TaskWeatherDto taskWeatherDto : taskWeatherDtos)
{
if(taskWeatherDto.getDate().equals(date))
{
weather = taskWeatherDto.getWeather();
}
}
return weather;
}
생각해보니 dto에서 등록되는 날짜를 찾지 않아되 될거같아서
그리고 findByWeather메서드를 만들어서
오늘 날짜를 입력받아서 매칭되는 날짜를 찾는다
참고자료
https://kim-jong-hyun.tistory.com/32
jwt와 필터
오늘의 회고 & 12시간 몰입했는가?
'TIL' 카테고리의 다른 글
20240828 본캠프 33일차 TIL (0) | 2024.08.28 |
---|---|
20240827 본캠프 32일차 TIL (0) | 2024.08.27 |
20240825 주말에도 나와버린 나의 과제 작성기 (0) | 2024.08.26 |
20240823 본캠프 30일차 TIL (0) | 2024.08.23 |
20240822 본캠프 29일차 TIL (0) | 2024.08.22 |