본문 바로가기

공부/TIL

23.12.13

밀린 알고리즘 문제를 풀었다.

오늘 알고리즘을 공부하면서 느꼈던 것중 가장 컸던 것은 적절한 자료구조를 사용한다면 시간복잡도나 로직에 굉장히 좋다는 것. 프로그래머스의 "대충만든 자판" 문제를 풀 때 map을 이용해서 풀었더니 굉장히 잘 풀렸다. 처음 어떻게 해야할지 생각하는 것도 힘들었는데, map을 이용하니까 아주 간단한 풀이가 되더라.비슷하게 "숫자 짝꿍"도 다시 풀어봐야겠다. "숫자 짝꿍"도 map을 이용한다면 더 쉽게 풀 수 있을 것 같다. 

오우 "숫자 짝꿍"을 생각보다 빨리 풀어버렸다. 내가 틀렸던 이유는 테스트 케이스11~15에서 시간초과가 떴었다.

그 이유는 String answer += i; 연산을 해서다. 공부를 해보니 String에 +연산을 하면 그냥 있는 문자열에 추가를 하는게 아닌, 문자열을 새로 만들기 때문에 메모리도 많이 쓰고, 시간도 엄청 많이 쓴다고 한다! 그 이유는?? String은 변경이 불가능한 데이터 타입이기 때문! 따라서 이 String에 변화를 줄 때는 다른 방법을 써야 한다. 최종적으로 변경이 완료 됐을 때 할당을 해주는 게 좋은 방법!

이때 해결방법은?

StringBuilder를 이용하는 것. StringBuilder의 append()메서드는 문자열을 더해주는 연산이다. 이렇게 연산을 다 끝내주고? toString()으로 다시 String으로 만들어 주면 깔끔! 이제 앞으로 StringBuilder로 String연산을 끝내고 사용하도록 하자.

 

아직 jpa 강의를 듣고 있는데 이거 생각보다 좀 어렵다... 쿼리문을 작성하는것도 쉽지 않고, 영속, 비영속, 준영속등 Entity들이 갖는 상태를 이해하는것도 쉽지 않다. 일단 강의를 한번 싹 듣고 jpa에서 사용하는 단어들이 익숙해지길 바래야겠다. 우선 단어들을 익히는 게 좋다. 그리고 다시 복습을 하면 흐름이 눈에 보인다.  

'공부 > TIL' 카테고리의 다른 글

23.12.15  (0) 2023.12.15
23.12.14  (0) 2023.12.14
23.12.12  (0) 2023.12.12
23.12.11  (1) 2023.12.11
23.12.08  (0) 2023.12.08