본문 바로가기

전체 글1068

[자바] 백준 24568 - Cupcake Party (java) 문제 : boj24568 필요 알고리즘 개념 구현, 수학 문제에서 제시된 수식 그대로 구현해주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 이 문제 풀이를 보러 왔다면 사실 구현보다는 어떻게 입출력 받는지가 더 궁금해서 왔을 것 같다. 위 '자바로 백준 풀 때의 팁 및 주의점' 링크를 참고해보자. 문제 풀이는 간단한데, R과 S를 입력받은 후, 8R+3S - 28 을 출력해주면 된다. 'and a total of .. 2022. 10. 3.
[자바] 백준 14562 - 태권왕 (java) 문제 : boj14562 필요 알고리즘 개념 너비 우선 탐색 (bfs) 너비 우선 탐색을 떠오르기 힘들 수 있고 다른 풀이도 존재하는 문제이다. 이하 풀이는 너비 우선 탐색으로 진행한다. 백트래킹 부가적으로 백트래킹 개념도 넣으면 좋다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 일반적으로 bfs는 목적지(이 문제에서는 t에 해당)는 고정되어 있고 목적지까지 탐색해나가곤 한다. 하지만 출발지점과 목적지를 동시에 사용해서 .. 2022. 10. 1.
[자바] 백준 11779 - 최소비용 구하기 2 (java) 문제 : boj11779 필요 알고리즘 개념 다익스트라 (dijkstra) 다익스트라 응용 문제이다. 기본적인 다익스트라 구현방법은 알아야 풀 수 있고, 추가로 경로를 구할 방법도 생각해봐야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 다익스트라 공부용으로 추천하는 문제이다. 1854번 - K번째 최단 경로도 매우 추천한다. 다익스트라의 진행 경로를 출력해줘야 하는 문제이다. 처음엔 좀 당황스러웟는데, 반대로 목적지.. 2022. 9. 30.
[자바] 백준 9324 - 진짜 메시지 (java) 문제 : boj9324 필요 알고리즘 개념 문자열, 파싱, 구현 입력으로 주어진 문자열을 파싱하면서 문제에서 제시된대로 구현해주면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제에서 제시된걸 구현하기 위해 필요한 항목은 다음과 같다. 1. 현재 문자열의 i번째 문자를 보고있을 때, 현재까지 i번째 문자와 동일한 문자가 이전에 몇 번 나왔는지 알 수 있어야 한다. -> 대문자만 입력으로 들어오므로, A부터 Z까지 2.. 2022. 9. 29.
[자바] 백준 25644 - 최대 상승 (java) 문제 : boj25644 필요 알고리즘 개념 그리디 매번 입력 중 최소값과, '현재값-최소값'의 최대값을 갱신하면서 모든 경우를 보면 된다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 이 문제를 풀 때 주의할점이, 문제의 조건이 '주식 한 주를 적당한 시점에 사고 적당한 시점에 팔아서 얻을 수 있는 최대 이득' 이므로 딱 한번만 주식을 사야 한다는 점이다. 즉 입력이 '1 5 2 6' 일 경우 1에사고 5에 팔아서 4의 .. 2022. 9. 29.
[자바] 백준 14912 - 숫자 빈도수 (java) 문제 : boj14912 필요 알고리즘 개념 브루트포스 모든 경우의수를 확인해보면 풀 수 있는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 최대 n은 10만이고, 최대 자리수는 6개이다. 따라서 1부터 n까지 모든 자리수를 하나씩 비교해보더라도 O(N)이면 되므로 브루트포스로 모든 경우를 확인해주면 된다. 각 자리수를 모두 확인하려면 우선 편한 방법으로는 1부터 n까지 각 수를 String으로 변경해준 뒤 Str.. 2022. 9. 29.
[자바] 백준 2740 - 행렬 곱셈 (java) 문제 : boj2740 필요 알고리즘 개념 구현, 수학 행렬 곱셈하는 방법을 알고 있다는 전제하에, 단순 구현문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 혹시 행렬 곱셈 방법을 모른다면 애초에 이 문제를 풀 수 없으니 구글링을 통해 행렬 곱셈방법을 알아보자. 알고있다면, 이제 구현력(?)에 달려있다. 두 행렬을 입력받은 후 행렬 곱셈을 해주는 코드를 작성하면 되며, 구현방식을 잘 모르겠다면 이하 코드의 matri.. 2022. 9. 29.
[자바] 백준 6086 - 최대 유량 (java) 문제 : boj6086 필요 알고리즘 개념 네트워크 플로우 (최대 유량) 최대 유량 기본 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 내 경우엔 에드몬드-카프 알고리즘을 사용해 최대 유량을 구했다. 에드몬드-카프 알고리즘을 적용할 수 있는 기본 문제로, 별도로 구현에 대해서는 풀이하지 않는다. 주의점은 입력으로 들어온 간선의 용량(capacity)이 양방향이라는 점이다. 즉, 'A B 3'과 함께 'B A 3'도.. 2022. 9. 25.
읽은 책 소감 - 인공지능을 위한 수학 표지의 선생님을 보니 책도 뭔가 그림도 많고, 재밌게 알려줄 것 같아서 샀다. 하지만 겉표지였다 ㅠㅠ 속표지는 무섭다.. 이렇게 챕터 지나갈때만 다시 나오신다. 표지에 낚였다 ㅠ 아무튼.. 인공지능이 기본적으로 어떤건지 개념이 잡히지 않아 궁금했고, 수학 기초 책으로도 좋다고 들어서 사게 되었다. 인공지능쪽은 현재 내 분야가 아니므로 그냥 관심의 영역이었고, 수학은 너무 기초를 까먹은게 많아서 다시 공부하고 싶었는데 결론적으로 딱 좋은 책이었다. 책에서 다루는 분야가 기본적인 변수, 1차식, 로그, 지수, 삼각함수 등과 함께 미분, 선형대수, 확률과 통계까지 얕고 넓게 다뤄서 매우 마음에 들었다. 다만 얕고 넓다보니 중,고등 수학을 전혀 모른다면 아무래도 축약된 내용이므로 이해가 아니라 암기처럼 느껴져서.. 2022. 9. 25.
백준 스트릭 365일 달성! 2022-09-24에 달성했다. 스트릭 프리즈(장비해두면 문제를 안푼 날 하루를 푼걸로 해준다.) 를 당연히 쓸줄알고 예전에 사뒀는데 깔끔하게 하나도 안쓰고 채웠다 :) 목표는 새싹9단계 뱃지이다. 이제 160일정도밖에 안남았다. 이하 스트릭 365일 기념(?) 기록용으로 현재 스탯이다. 백준 스트릭 랭킹은 94위로, 1등은 현재 433일이다. 현재 총 푼 문제는 1430문제이다. 대부분 자바로 풀었다. 파이썬은 큰 수 등 가끔씩 자바로 귀찮은거 풀 때 사용했는데 은근 39문제나 되는게 신기하다. C++도 마찬가지로 자바로 시간초과 통과하기 어려운거 풀 때 썼었다. C#, 코틀린은 해당 언어 익힐 때 문법 익히려고 사용했고, C는 왠지 빡구현 하고싶을 때 가끔씩 썼다. 백준 랭킹은 850위로, 중간중간 .. 2022. 9. 25.