알고리즘/백준 알고리즘
-
[java] 백준 알고리즘 2440번 별찍기 - 3 풀이소스알고리즘/백준 알고리즘 2018. 5. 16. 11:36
* 풀이소스 1234567891011121314151617181920public class Baekjoon2440{ public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); for(int i=n; i>=1; i--){ String star = ""; for(int j=1; j=j){ star += "*"; } } System.out.println(star); } } }Colored by Color Scriptercs
-
[java] 백준 알고리즘 2747번 피보나치 풀이알고리즘/백준 알고리즘 2018. 5. 12. 16:57
말그대로 피보나치 함수를 구현하는 것이다. 난 자바로 구현~ 보통 피보나치 함수는 재귀함수로 많이 구현하는 것 같아서 예전에 푼 문제를 거의 베끼듯 + 직접 구현해보자는 마음으로 풀어보았다. -- p.s 채점기준이 바뀐건지 시간 초과로 결과가 나와있어서 memoization으로 다시 코드를 수정했다. * 풀이소스 1234567891011121314151617181920212223242526272829public class Baekjoon2747 { static long[] fibonacciArray; public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new Buffered..
-
[java] 백준 알고리즘 8393번 합 풀이소스알고리즘/백준 알고리즘 2018. 5. 12. 16:40
단순 for문을 이용한 문제. * 풀이소스 12345678910111213141516public class Baekjoon8393 { public static void main(String[] args) throws NumberFormatException, IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); long sum = 0; for(int i=1; i
-
[java] 백준 알고리즘 2439번 별찍기 - 2 풀이알고리즘/백준 알고리즘 2018. 5. 12. 16:36
간단한거라 설명은 생략. * 풀이소스 123456789101112131415161718192021222324public class Baekjoon2439 { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); for(int i=n; i>=1; i--){ String star = ""; for(int j=1; jj){ star += " "; }else{ star += "*"; } } System.out.pri..
-
[java] 백준 알고리즘 1003번 피보나치 함수 풀이알고리즘/백준 알고리즘 2018. 5. 10. 17:59
이 문제를 다른 사람들은 어떻게 풀었는지 봤는데, 이 문제는 어떻게 푸느냐에 따라 정말 다양하게 풀어낼 수 있는 문제 같다. 난 너무 쉽게 생각한걸까. 문제를 잘 들여다보면 return 값에서 해당하는 n에 대해 fibonacci(n-1) + finbonacci(n-2)니까 fibonacci(n)이란 fibonacci(n-1)과 fibonacci(n-2)를 동시에 수행한다는 로직이 성립한다. 그렇다면 fibonacci(n-1)에 해당하는 0이 출력되는 횟수와 1이 출력되는 횟수가 있을 것이고, fibonacci(n-2)에 해당하는 0이 출력되는 횟수와 1이 출력되는 횟수가 있을 것이다. 그럼 이 두 가지 함수의 0 출력횟수와 1 출력횟수를 합쳐주면 fibonacci(n)에 해당하는 0 출력횟수, 1 출력..
-
[java] 백준 알고리즘 1149번 RGB거리 풀이알고리즘/백준 알고리즘 2018. 5. 10. 17:18
이중배열로 문제를 풀어야할 거라고는 생각 못했다. 이중배열로 문제를 풀어야하는 경우가 이번이 처음이어서 다른 사람의 소스를 참고하면서 만들었다. 문제를 착각하면 안되는 것이 빨강->파랑->빨강, 파랑->초록->파랑 처럼 양 옆의 이웃하고만 색이 다르면 된다. 동시에 연속된 세 집이 다른 색이어야한다는 게 아니다. (알고리즘은 문제를 제대로 이해하는게 중요한 듯 싶다.) 풀이방법: 이중배열을 통해 각 행을 '집'으로 간주하고 3열을 '페인트 색'으로 간주한다. 0행(첫번째 집) (0,0) 빨강 (0,1) 초록 (0,2) 파랑 1행(두번째 집) (1,0) 빨강 (1,1) 초록 (1,2) 파랑 2행(세번째 집) (2,0) 빨강 (2,1) 초록 (2,2) 파랑 3행(네번째 집) (3,0) 빨강 (3,1) 초록 ..
-
[java] 백준 알고리즘 2579번 계단오르기 풀이소스알고리즘/백준 알고리즘 2018. 5. 9. 10:32
문제를 푸는데 조건을 잘 이해하는게 중요하다고 느끼는데, 세세한 조건을 착각하는 경우가 많다. 이번에도 첫번째 계단을 꼭 밟을 필요가 없지만, 예시에서는 첫 번째 계단을 시작점과 동시에 밟아야한다고 혼자 착각해서 원리가 맞음에도 불구하고, 초기값으로 넣어줄 세번째 계단 때문에 계속 틀렸다고 떴다. 첫번째 계단을 건너 뛰고 바로 갈 수도 있는 경우를 넣어줘야했는데 말이다... 아래부터 문제와 풀이! 조건은 총 세가지가 있다. 조건 세가지 모두 만족하려면, 마지막 계단의 점수는 더해주고, 두번째 칸 전(-2)의 계단에서 바로 마지막 계단을 밟든지, 세번째 칸 전(-3)의 계단에서 마지막 계단의 한 칸 전(-1)의 계단을 밟고 마지막 계단을 밟으면 된다. 이렇게 밟으면 계속해서 계단의 텀이 지속해서 2칸씩은 ..