본문 바로가기

전체 글1063

[자바] 백준 24891 - 단어 마방진 (java) 목차 문제 : boj24891 필요 알고리즘 브루트 포스 그냥 모든 경우를 다 확인해보면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 최악의 경우가 20개의 단어 중 5개를 순서대로 뽑는 경우이므로 20P5 = 20*19*18*17*16 번 정도면 모든 경우를 다 확인할 수 있다. 그리고 마방진임을 확인하는데에는 최대 L^2 이면 확인 가능하다. 결론적으로 그냥 브루트포스로 모든 경우를 확인하면 되는 문제이다. O(.. 2024. 3. 20.
[자바] 백준 2473 - 세 용액 (java) 목차 문제 : boj2473 필요 알고리즘 투 포인터 또는 이분 탐색 투 포인터를 쓰거나, 이분 탐색을 써서 풀 수 있는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 우선 처음 생각난 아이디어는, 어차피 n이 5000이므로 2개를 고정시켜놓고, 나머지 하나의 값을 이분 탐색으로 찾는 방법이었다. 이 경우 O(N^2 * logN). 예를들어 현재 고정시켜둔 2개의 값이 -97와 -2라면, -(-97-2) = 99 .. 2024. 3. 20.
[자바] 백준 14503 - 로봇 청소기 (java) 목차 문제 : boj14503 필요 알고리즘 구현, 시뮬레이션, 탐색 (bfs, dfs 등) 그냥 문제에 제시된 대로 구현하는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 딱히 풀이라 할 부분은 없을 것 같다. 문제에 제시된대로 구현하면 된다. 따라서 내 코드를 기준으로 어떤식으로 구현했는지만 얘기해보겠다. 우선 '방의 가장 북쪽, 가장 남쪽, 가장 서쪽, 가장 동쪽 줄 중 하나 이상에 위치한 모든 칸에는 벽이 .. 2024. 3. 19.
[자바] 백준 19953 - 영재의 산책 (java) 목차 문제 : boj19953 필요 알고리즘 정수론, 비둘기집의 원리 비둘기집의 원리로 풀 수 있는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 실제로 시뮬레이션을 돌려보게 된다면, O(t) 이므로 시간초과가 나게 된다. 따라서 시간을 줄일 아이디어를 찾아야 하는데, 내 경우에 비둘기집의 원리로 시간을 줄였다. n+1마리의 비둘기가 n개의 비둘기집에 들어간다면 자명하게도 최소 1개 이상의 비둘기집은 2마리 이상의.. 2024. 3. 18.
[디자인 패턴의 아름다움] 2. 객체지향 프로그래밍 패러다임 - 2.3~2.4 정리 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한대로 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 디자인패턴의 아름다움(왕정 저) 책 입니다. 2.1~2.2 정리 글 : 링크 2.3 객체지향 분석, 객체지향 설계, 객체지향 프로그래밍을 수행하는 방법 ☆ 예제를 가지고 설명하는 부분이기도 하고, 2.3에 나온 예제가 그리 좋은 예제가 아니라고 생각하다보니, 내용 정리 시 책에 쓰여진 말을 제 생각대로 많이 축약 시켰습니다. 그래서 제가 잘못 이해한 경우, 2.3의 내용정리 부분은 책이 전달하고자 하는 내용과 다를 수 있습니다. 예제 소개와 난이도 분석 HTTP 인.. 2024. 3. 10.
[수강평] 빠르게 git - 핵심만 골라 배우는 Git/Github 강의 링크 : 인프런 이전에 '개발자 윈도우 세팅 (WSL 서브 리눅스, IntelliJ, vscode, git 등)' 라는 글을 쓸때만 해도 인텔리제이에 콘솔창 붙인거 이쁘게 꾸며서 CLI 환경으로 git을 자주 썼었다. 그러다가 그냥 IDE에서 제공하는 기능으로 git을 쓰게 되었고, 현재는 CLI 환경에서 git 명령어를 많이 까먹었다. 그렇다고 git documentation 보기엔 너무 과하기도 하고, 기본적으론 IDE에서 제공하는 기능 계속 쓸꺼긴 한데, 그래도 CLI 명령어도 잊고싶진 않으니까 기본 명령어들만 다시 리마인드 해보자는 생각에 구매해서 보게 되었다. 강의는 딱 필요한 git 관련 명령어들에 대해 잘 설명해줘서 좋았다. 원격 저장소(github)도 함께 설명하다보니 git을 처음 .. 2024. 3. 10.
[수강평] 떠먹는 머신러닝/딥러닝 강의 링크 : 인프런 몇일전에 '비전공자/고등학생을 위한 인공지능 기초와 커리어 조언'라는 강의를 봤었다. 그 사이에 파이썬(파이썬 거의 처음)으로 머신러닝하는 간단한 예제는 한번 따라해보았다. 근데 취향상 가성비 안나와도 배경을 먼저 알고 가는걸 좋아해서, 이번에도 기본 배경을 알기위한 강의를 하나 더 들어보게 되었다. 인공지능을 아예 모르는 상태에서, 전체적인 틀을 잡기에 좋은 강의였다. 얕더라도, 복잡하지 않게 딱 필요한 내용만 ppt에 적혀있고, 모두 손글씨 및 직접 그린 그림이라 엄청 편하게 볼 수 있었다. 직전에 들었던 강의보다 훨씬 듣기 편했어서, 이걸 먼저 들었으면 이전에 봤던 강의를 듣기 더 좋았을 것 같다는 생각이 들었다. 아무튼 대강 배경은 안 것 같으니 언제가 될진 모르겠지만 이후로.. 2024. 3. 9.
[수강평] Java/Spring 주니어 개발자를 위한 오답노트 강의 링크 : 인프런 반차쓰고 무슨겜하지 생각하다가 일단 점심 먹으면서 이전에 사놓고 안봤던 인프런 강의가 보여 보기 시작했다. 시간 짧은거 보고 1.5배속 걸고 대충 봐야지! 느낌으로 시작했는데, 왠걸 예상치 못한 좋은 강의에 바로 속도 낮추고 필기하면서 보기 시작하니 강의 시간의 2배는 넘게 걸린 것 같다 ㅋㅋ. 강의가 맘에 들어 안쉬고 지금까지 풀로 보게되버렸다. 결국 내 반차는 날아갔지만, 그럼에도 아까운 기분은 없다. 난이도는 개인적으로 섹션2 OOP 부분이 가장 어려웠던 것 같다. 그럼에도 듣기 좋았다. 사실 섹션1은 대강 보고 있었는데, 섹션2부터 각잡고 보기 시작한 것 같다. 테스트쪽 설명 또한 전반적으로 맘에 들었다. 내 경우에도 통합 테스트가 잘 이해가 안됬는데, 그 부분도 집어줬고, .. 2024. 3. 6.
[수강평] 비전공자/고등학생을 위한 인공지능 기초와 커리어 조언 강의 링크 : 인프런 얼마전 AI쪽 석사중인 친구와 술 마시며 인공지능 분야와 관련된 얘기를 듣다보니 이 분야가 갑자기 궁금해졌다. 난 관련 지식이 거의 없었으므로, "내가 뭘 모르는지 모르니, 그냥 얇고 넓게 살펴볼만한 강의가 있으면 좋겠다" 싶었다. 그래서 가장 쉬워보이는 제목의 강의를 구매해서 보게 되었다. 비전공자와 고등학생을 위한 강의라니 나에게 딱이었다. 일단 초반부 첫인상은 솔직히 말해 별로긴했다. 뭔가 생각이 정리되지 않고 강의하는 느낌이 초반부 강의분에 있었고 (내가 이 분야를 모르니 잘 못알아들어서 그럴수도 있다. 그리고 초반부만 그렇고, 나머진 괜찮았다.), 말로도 설명을 해주시니 상관은 없지만 그렇다곤 해도 너무 글자를 못알아보게 적으신다. 글자를 알아보기 위해 말하는걸 다시 들어야.. 2024. 3. 5.
[디자인 패턴의 아름다움] 2. 객체지향 프로그래밍 패러다임 - 2.1~2.2 정리 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한대로 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 디자인패턴의 아름다움(왕정 저) 책 입니다. CHAPTER 02. 객체지향 프로그래밍 패러다임 ☆ 패러다임쪽은 공식적인 정의가 명확하지 않은 부분들이 많다. 즉, 사람마다 생각이 다른 부분이 많고, 따라서 내 생각을 적기위한 사족이 좀 많이 들어갔다. 그 부분에 남들과 생각이 다른 부분도 있을꺼고, 내가 현재 잘못 생각하고 있는 것도 있을꺼다. 결국 답은 없고, 토론이 필요한 부분이라 생각된다. 아무튼 그러니 책 내용 정리만을 보고 싶다면 '☆'이 안붙어 있는 항목.. 2024. 3. 3.