목록지구정복과정 (466)
지구정복
https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net -문제해설 처음에 반복문으로 풀었는데 숫자가 커질 경우 시간초과가 나왔다... 그래서 수학적인 코드로 바꿨는데도 25퍼정도 지나가면 시간초과가 나왔다. 원래 BufferedWriter쓰는게 더 빠른 줄 알았는데 입력받을 때만 BufferedReader쓰고 출력할 때는 System.out.println() 쓰니깐 시간초과가 안나왔다 여태까지 출력은 맨날 BufferedWriter썼는데 앞으로 쓰지 말아야겠다 ㅎㅎ 수학식을 생각하기 위해 여러가지 테스트케이스..
https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net -문제해설 숫자로 입력받지 않고 문자열n으로 입력받은 다음에 반복문을 0부터 n/2까지 순회하면서 양 끝값을 비교한다. n.charAt( i )와 n.charAt( n.length()-i-1 ) 다르면 ans라는 변수를 "no"로 초기화시키고 반복문을 빠져나온다. 같은 경우 ans 값을 그대로 출력한다. ans의 맨 처음 초기값은 "yes"이다. -자바 package string; import java.io.Bu..
https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net -문제해설 l로 문자열 길이를 입력받고 다음 줄에 문자열을 입력받는다. 이때 a=1, b=2, c=3, d=4, ... ,z=26이다. 만약 주어진 문자열이 abcde라면 해당 문자열의 해시값을 얻는 방법은 1*31^0 + 2*31^1 + 3*31^2 + 4*31^3 + 5*31^4 가 되는데 만약 문자열의 길이가 5보다 크고 50이하이면 값이 너무 커지므로 매번 계산할 때마다 m값으로 나머지를..
https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net -문제해설 입력값인 카드의 개수 n과 주어진 카드 3장을 더해서 최대한 가깝게 만들어야 되는 수 m이 주어지면 출력값으로는 가장 m과 가까운 수를 출력하는 문제이다. 나는 단순하게 주어진 카드를 모두 비교하는 방법으로 문제를 해결했다. 먼저 한 번 반복시 담을 sum 변수와 최종적인 답이 담길 ans 변수를 선언하고 i, j, k 변수를 이용해서 삼중 포문을 돌린다..