주노 님의 블로그

20240826 본캠프 31일차 TIL 본문

TIL

20240826 본캠프 31일차 TIL

juno0432 2024. 8. 26. 21:10

본캠프 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

 

[Java] Json 파싱하기 #JSONArray, JSONObject #json에서 원하는 값 추출

json이 넘어오는 형태는 크게 3가지가 있다. JsonObject : {상진 : 100, 길동 : 200} JsonArray : [ { : }, { : }, { : } ] JsonArray : {"key" = [ { : }, { : }, { : } ] } 경우에 따라 각각의 요소를 어떻게 뽑을 수 있는지 알아

jinsangjin.tistory.com

 

그래서 보니 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

 

[JAVA] - JSON 데이터(object, array)를 다뤄보기

2장에서는 JAVA에서 JSON 데이터로 HTTP 통신을 해보는 시간을 가졌는데 이번에는 직접 JSON 데이터를 다뤄보는 시간을 가져보자 JSON 데이터를 다루기 위한 라이브러리와 HTTP통신하는 예제는 아래링

kim-jong-hyun.tistory.com

 

 


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