알고리즘
-
[java] 백준 알고리즘 1546번 평균 풀이 소스알고리즘/백준 알고리즘 2018. 3. 30. 18:37
우리가 아는 평균을 구하는 것이지만, 문제에서 단순히 점수 총합/과목의 갯수가 아니라, 각각 받은 점수를 새로 계산해서 재정의하고 있다. 그리고 그 결과값의 평균을 구하는 문제이다. 아래는 소스. 123456789101112131415161718192021222324public class Baekjoon1546 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); // 과목의 개수 String[] preGradeArray = br.readLine..
-
[java] 백준 알고리즘 18071번 X보다 작은 수 풀이 소스(if문)알고리즘/백준 알고리즘 2018. 3. 30. 18:17
if문을 활용하는 쉬운 알고리즘 문제이다. 소스는 아래. 123456789101112131415161718192021222324252627public class Baekjoon10871 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] inputArray = br.readLine().split(" "); int n = Integer.parseInt(inputArray[0]); // 주어진 배열의 크기인 N int x = Integer.parseInt(inputArray[1]); // 주어진 정수 X..
-
[java] 백준 알고리즘 2805번 나무자르기 풀이 소스(이분 탐색)알고리즘/백준 알고리즘 2018. 3. 30. 17:51
여기서 minHeight와 maxHeight에 중간값이 들어갈 때 각각 +1, -1을 해주지 않으면 시간초과가 발생했다. 그리고 나무길이들의 총 합이 int 범위를 넘어갈 수도 있으므로 long을 선언해주었다.(이런 부분들 때문에 알고리즘을 풀 때마다 런타임에러를 수도 없이 보게 된다.) 설명은 주석으로 했다~ 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657public class Baekjoon2805 { public static void main(String[] args) throws IOException { BufferedReader br = new Buffer..
-
[java] 백준 알고리즘 10815번 숫자카드 풀이 소스(이분 탐색)알고리즘/백준 알고리즘 2018. 3. 30. 17:49
이분탐색의 문제이다. 문제푸는 원리는 백준 1920번과 동일해서 다른 설명을 할 필요는 없을 것 같다. (백준 1920 풀이 참고) 단지 백준 1920번 문제와 다른 점이라면 찾는 숫자가 음수가 존재하는 것이지만, 결국 특정한 수를 찾는다는 것에는 다름이 없다. 소스는 아래와 같다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960public class Baekjoon10815 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(..
-
[java] 백준 알고리즘 1920번 수 찾기 풀이 소스(이분 탐색)알고리즘/백준 알고리즘 2018. 3. 29. 19:23
이분 탐색이라는 알고리즘 유형을 잊고 if, else문을 활용해 equals로 찾다가 결과가 나와서 바로 제출했더니 '시간초과'라고 크게 알려줬다. 정보처리기사를 준비하던 시절 풀던 이분 탐색이 생각나서 기억을 되살려 열심히 풀어봤다. * 문제 풀이는 주석을 참고할 것! 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 public class Baekjoon1920 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamRe..
-
[python] 백준 알고리즘 9095번 1,2,3 더하기 풀이 소스알고리즘/백준 알고리즘 2018. 3. 29. 13:31
계산하다보니 입력한 케이스에 대해 입력한 케이스의 3가지 케이스의 경우의 수를 다 더하니 현재 입력한 케이스의 경우의 수가 나왔다. (귀납법적인 결론 도출..) 그래서 생각해보니 현재 케이스의 바로 직전(-1)의 케이스의 경우는 '1'을 더해주기 전의 총 케이스를 구한 값과 같다. 그리고 2번째 전의 케이스(-2)의 경우 '2'를 더 해주기전의 총 케이스를 구한 값과 같다. 3번째 전의 케이스(-3)의 경우 '3'을 더 해주기전의 총 케이스를 구한 값과 같다. * 1이 왔을 때 n의 케이스 = 1 + (n-1)의 값을 구하기 위한 총 케이스* 2가 왔을 때 n의 케이스 = 2 + (n-2)의 값을 구하기 위한 총 케이스* 3이 왔을 때 n의 케이스 = 3 + (n-3)의 값을 구하기 위한 총 케이스 이란..
-
[java] 백준 알고리즘 9095번 1,2,3 더하기 풀이 소스알고리즘/백준 알고리즘 2018. 3. 29. 13:27
계산하다보니 입력한 케이스에 대해 입력한 케이스의 3가지 케이스의 경우의 수를 다 더하니 현재 입력한 케이스의 경우의 수가 나왔다. (귀납법적인 결론 도출..) 그래서 생각해보니 현재 케이스의 바로 직전(-1)의 케이스의 경우는 '1'을 더해주기 전의 총 케이스를 구한 값과 같다. 그리고 2번째 전의 케이스(-2)의 경우 '2'를 더 해주기전의 총 케이스를 구한 값과 같다. 3번째 전의 케이스(-3)의 경우 '3'을 더 해주기전의 총 케이스를 구한 값과 같다. * 1이 왔을 때 n의 케이스 = 1 + (n-1)의 값을 구하기 위한 총 케이스* 2가 왔을 때 n의 케이스 = 2 + (n-2)의 값을 구하기 위한 총 케이스* 3이 왔을 때 n의 케이스 = 3 + (n-3)의 값을 구하기 위한 총 케이스 이란..