본문 바로가기

백준756

[자바] 백준 25495 - 에어팟 (java) 문제 : boj25495 필요 알고리즘 개념 시뮬레이션 (구현) 문제에서 제시된 대로 구현만 할 수 있다면 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 로직을 정리해보면 다음과 같다. 우선 이전 핸드폰 종류(1~9)는 bf 변수에 담아둘 것이다. 그리고 현재 배터리 소모량은 cnt라는 변수로 표현할 것이다. 누적 배터리 소모량은 sum으로 표현한다. 1. bf=0(존재하지 않는 번호), sum=0으로 초기화 .. 2022. 8. 24.
[자바] 백준 25494 - 단순한 문제 (Small) (java) 문제 : boj25494 필요 알고리즘 개념 브루트포스 (완전탐색) 모든 경우를 다 살펴보는 브루트포스 문제이다. 나머지 연산 (기본 수학) 나머지 연산이 무엇인지, 사용중인 언어에서 어떻게 계산할 수 있는지 알아야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 각 테스트 케이스마다, a,b,c의 모든 쌍을 확인하더라도 O(60^3) 의 시간복잡도이다. 따라서 모든 테스트케이스라고 해도 O(100*60^3)으로 시간복.. 2022. 8. 23.
[자바] 백준 17353(펜윅트리) - 하늘에서 떨어지는 1, 2, ..., R-L+1개의 별 (java) 문제 : boj17353 필요 알고리즘 개념 세그먼트 트리 lazy propagation 또는 펜윅 트리 개념 세그먼트 트리를 통한 lazy propagation 혹은 range update 펜윅 트리를 알고 있어야 풀 수 있다. 또는 기본 펜윅트리로도 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 1 - 펜윅 트리 range update + range query를 통한 풀이 우선 내가 처음 생각한 풀이부터 작.. 2022. 8. 23.
[자바] 백준 10174 - 팰린드롬 (java) 문제 : boj10174 필요 알고리즘 개념 문자열 문자열을 다룰 줄 알아야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 우선 대소문자는 비교를 해선 안되므로, 모두 소문자 혹은 모두 대문자로 변경해주자. (toLowerCase()) 그 후 팰린드롬인지 판단은 다음과 같이 비교해보면 된다. 전체 길이가 n이고, 인덱스가 i=0부터 i=n-1 까지라고 할 때, i를 0부터 n/2까지 증가시키면서 a=i과 b=n-1-i.. 2022. 8. 22.
[자바] 백준 25304 - 영수증 (java) 문제 : boj25304 필요 알고리즘 개념 사칙연산 더하기, 곱셈 조건문 계산 결과와 입력으로 주어진 값을 비교해야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 기초적인 입력 연습 문제라고 보면 된다. 주어진 X를 잘 저장해두고, N개의 a*b를 모두 더해준 뒤 X값과 비교해줘서 "Yes", "No"를 출력해주면 된다. 딱히 해설은 필요없고, 입출력을 연습해보자. 코드 : github import java.io.B.. 2022. 8. 21.
[자바] 백준 1977 - 완전제곱수 (java) 문제 : boj1977 필요 알고리즘 개념 브루트포스 모든 경우를 살펴보는 브루트포스 알고리즘 개념이 필요하다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 1 2022. 8. 21.
[자바] 백준 10162 - 전자레인지 (java) 문제 : boj10162 필요 알고리즘 개념 그리디 알고리즘 규칙을 정해, 매번 해당 규칙을 적용시켜 답을 구하는 그리디 알고리즘 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 최소 버튼 조작 횟수이므로, 그냥 초가 큰 버튼부터 눌러주면 된다. A,B,C를 초로 변경해주면 300,60,10 이므로 300을 누를 수 있는만큼 누르고, 60을 누를 수 있는 만큼 누르고, 10을 누를 수 있는 만큼 누르면 된다. 근데 .. 2022. 8. 21.
[자바] 백준 13458 - 시험 감독 (java) 문제 : boj13458 필요 알고리즘 개념 사칙연산 나누기! 나머지! 덧셈뺄셈! ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 N개의 시험장이 있을 시, 총감독관은 무조건 한명씩 있어야 하니 일단 N명의 감독관은 확정이다. 이후 N개의 시험장에 대해, 'Ai-B'를 C로 나눈 수 만큼의 부감독관이 필요하다. 그리고, 'Ai-B'가 C로 나누어떨어지지 않는다면 한명이 더 필요하다. 위에 말한걸 구현해주면 된다! 예를들어서 3.. 2022. 8. 21.
[자바] 백준 1715 - 카드 정렬하기 (java) 문제 : boj1715 필요 알고리즘 개념 그리디 일정한 규칙을 정해 매번 해당 규칙을 적용시키다 보면 답이 나오는 알고리즘으로, 뭔가 알아야 하는건 아니고 그냥 그런 식으로 생각할 수 있어야 한다. 우선순위 큐 (Priority Queue), Min heap 다른걸 사용해서 풀어도 되지만, 이 문제를 가장 쉽게 풀 수 있는건 우선순위 큐를 사용해 min heap으로 사용하는 것이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다... 2022. 8. 21.
[자바] 백준 14495 - 피보나치 비스무리한 수열 (java) 문제 : boj14495 필요 알고리즘 개념 동적 계획법 (DP; Dynamic Programming) 일단 DP 문제긴 한데.. 사실 점화식이 이미 주어져 있어서 그냥 이전값을 활용하는 Memoization 수준의 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 식을 풀어나가다 보면 f(10) = f(9) + f(7) = f(8) + f(6) + f(6) + f(4) = f(7) + f(5) + f(5) + f(3.. 2022. 8. 20.