전체 글

전체 글

    [TIL - 20230316]

    😊 느낀점 스프링 실전 JPA 강의 2개 남았다!! 내일 마무리 하고 새로운 강의 들을 생각에 벌써 설렌다... 어려운 배낭 문제... 오늘 간신히 이해했다. 알고리즘 시트에 지금으로써는 유일한 세모가 되었다. 6일차에 챌린지 문제만 있는거 보면 6일차는 전부 세모일 것 같다... 벌써 무서워! 1월 중반부터 1일 1백준하고... 알고리즘 스터디 하면서 하루에 적어도 새로운 문제를 적어도 1개 ~ 3개씩 푸니까 금방 레벨이 오르는 것 같다. 레벨이 올라도 뭐랄까... 실력은 비례하지 않는 느낌? 백준 레벨에 맞는 실력을 갖추면 좋을 텐데 아직은 공부할게 많이 남아서 먼 후의 이야기일 듯 하다. 🤔 개선할 점 하루에 알고리즘 스터디도 하고, 강의도 듣고, 알고리즘도 풀자니 시간이 너무 빠듯하다. 읽을 책도..

    [TIL - 20230315]

    😊 느낀점 점점 DP에 익숙해지고 있다! 나중에 알고리즘 분류를 모르고 풀었을 때도 DP를 잘 적용할 수 있을지는 모르겠지만 ㅎㅎ.. 계속 그림을 그리고 표를 그려보면 점화식을 얻어서 잘 해결할 수 있는 것 같다. Top_down 방식으로 먼저 풀고 Bottom_up 방식으로 풀면 Top_down 방식에서 이미 많은 고통을 겪고 깨달음을 얻어서인지 Bottom_up 구현이 훨씬 쉬워지는 것 같다. https://yeon-dev.tistory.com/110 [백준/Java] 1149번. RGB 거리 문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 yeo..

    [백준/Java] 1149번. RGB 거리

    문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. 입력 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 ..

    [TIL - 20230314]

    😊 잘한점 아직 DP에 익숙하지 않아서 Top_down 방식이나 Bottom_up 방식으로 문제를 풀면, 해보지 않은 방식으로도 한 번 더 풀고 있다. 손으로 문제를 그려보고 규칙을 찾다보니 자연스럽게 Bottom_up으로 생각해 놓고, 항상 함수부터 만들어서 Top-down 방식으로 풀고 있다...뭐지. 문제 난이도가 배낭 문제같이 어렵지는 않아서 아직은 두가지 방식 모두 괜찮은 것 같다. 기술 매니저님이 어떤 방식으로 풀고 있냐고 하셔서, 두 가지 방식 모두 풀어본다고 답했는데 "오, 제가 그거 말씀드리려고 헀어요." 하셔서 나름 잘 하고 있구나 생각했다. 😊 느낀점 팀원분들 중에는 오늘 처음 DP 문제 접하신 분도 계실텐데, 조금 설명만 해드렸는데 잘 적응하시는걸 보고 확실히 그림을 잘그리거나 수학..

    [백준/Java] 2231번. 분해합

    문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 내 풀이 처음에는 각 자리수를 계산하기 위해 10, 100 으로 나눈 나머지를 사용하려고 했..

    [TIL - 20230313]

    😊 느낀점 예전에 정글 사관학교 사전 과제로 웹 개발 자료를 공부한 적이 있다. 웹 개발 종합 강의를 1번은 수강해야해서 오늘 1주차를 다 들어보았는데, 다행히 다 까먹은 것 같지는 않다 ㅎㅎ... 다시 한 번 상기시키는 느낌으로 수강 중이다. 정글 사전 과제를 공부할 때는 안드로이드 분야를 생각하고 있어서, 내가 왜 웹이랑 백을 해야하지라는 생각뿐이었는데... 내가 이렇게 백엔드로 분야를 바꾸게 되면서 오히려 득이 되었다. 역시 사람 일은 어떻게 될지 모르겠다ㅎㅎ 처음 웹 개발 공부했을 때는 자바나 코틀린, C# 이런 언어들과는 다른 방식으로 html, css 등을 작성해야 하니 재밌긴 하지만 받아들이기 쉽지 않았는데 한 번 경험하고 나니, 이제는 편안하게 들을 수 있는 것 같다. 결론은... 쓸 데 ..

    [TIL - 20230311]

    😊 잘한점 이전에 파이썬으로 최소공배수, 최대공약수를 구하는 방법에 대해 게시글을 작성한 적이 있다. 오늘 백준 '최소공배수' 문제를 보며 유클리드 호제법을 떠올릴 수 있어서 다행이었다. https://yeon-dev.tistory.com/42 [파이썬] 최대공약수와 최소공배수 최대공약수 GCD : Greatest Common Divisor 두 수 이상의 공통인 약수 중 최대인 것 12의 약수 : 1, 2, 3, 4, 6, 12 6의 약수 : 1, 2, 3, 6 12와 6의 공통인 약수 : 1, 2, 3, 6 12와 6의 최대공약수 : 6 최소공배수 LCM : Least yeon-dev.tistory.com 자바에서는 작성하면 다음과 같다. //유클리드 호제법 private static int GCD(i..