오늘의 강의는 알고리즘 4문제를 해결하는 것이다
Level0 부터 Level2 까지 총 4문제를 해결하고 구현 방법을 간단히 정리하겠다
소스코드 및 더욱 구체적인 해결 방법은 알고리즘 카테고리에 따로 정리할 것이다
일단 익숙한 자바로 문제를 해결해보았다 자바스크립트로 코드를 변경해보고 그것도 따로 포스팅하도록 하겠다
모든 문제는 자바를 기준으로 정리하였다
# [Lv0] 문자 개수 세기
아스키 코드에 대해서 알면 쉽게 풀리는 문제이다
아스키 코드로 알파벳을 숫자로, 숫자를 알파벳으로 변환할 줄 알아야 한다
# [Lv0] 이어 붙인 수
자바를 기준으로 String을 int로, int를 String으로 변환하여 코드를 짜면 금방 풀 수 있는 문제이다
(자바스크립트는 어떨지 아직 모르겠다)
# [Lv1] 크기가 작은 부분문자열
문제에서 주어지는 p의 최대 길이가 18자리이다
int의 범위를 초과하는 것을 알고 p를 Long 타입으로 변환한 변수를 만들어준다
주어진 String을 substring 메소드를 사용해서 p의 길이만큼 자르고 크기를 비교한다
이때 String을 Long 타입으로 변환 후 크기 비교를 해주어야 한다 -> Long.parseLong 사용
# [Lv2] 디펜스 게임
최대로 방어 가능한 라운드를 구해야한다
브루트포스로 해결하기에는 주어진 범위가 크다
따라서 이 문제의 핵심은 우선순위 큐를 사용하는 것이다
우선순위 큐를 오름차순, 내림차순으로 생성할 줄 알아야하며
어떤 상황에서 return을 해주어야 하는지 알아야한다
# 새로 알게 된 점
문제의 난이도가 엄청 높지는 않았지만 자바로만 해결한 점이 아쉽다
아직까지 자바스크립트로 알고리즘 문제를 푸는 것이 익숙치 않아서 연습이 많이 필요할 것 같다
우선순위큐를 구현하는 것이 오랜만이라 헷갈렸는데 역시 알고리즘 문제는 꾸준히 다양한 문제를 푸는 것이 중요하다는 것을 다시 한번 느꼈다
앞으로 진행될 강의와 병행해서 알고리즘도 정말 열심히 해야겠다
'TIL > 프로그래머스 데브코스' 카테고리의 다른 글
클라우딩 어플리케이션 엔지니어링 TIL Day 26 - Node.js 기초 (0) | 2024.02.02 |
---|---|
클라우딩 어플리케이션 엔지니어링 TIL Day 24 - 피그마 학습하기 심화 (0) | 2024.02.01 |
클라우딩 어플리케이션 엔지니어링 TIL Day 23 - 피그마 기초 (1) | 2024.01.31 |
클라우딩 어플리케이션 엔지니어링 TIL Day 18 - 고양이 사진 검색 사이트 해설 (4) (1) | 2024.01.24 |
클라우딩 어플리케이션 엔지니어링 TIL Day 18, 19 - 고양이 사진첩 만들기 모의고사, 최종 모의고사 후기 (1) | 2024.01.24 |