목록Algorithm (89)
Hayden's Archive
알고리즘 문제 출처 : https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌� www.acmicpc.net 내가 작성한 코드 public class Main { private static int notSelfNum (int n) { int total = n; int quotient = n; while(quotient > 0) { total += quotient % 10; quotient /= 10; } return total; }..
알고리즘 문제 출처 https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 � www.acmicpc.net 내가 작성한 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i=0; i
알고리즘 문제 출처 : https://www.acmicpc.net/problem/1546 따로 최댓값으로 나눈 뒤 100을 곱하고 합하는 것이나 총합을 최댓값으로 나눈 뒤 100을 곱하는 것이나 결과는 같게 나온다. 그런 생각에서 코드를 짰는데 결과가 이상하게 나와서 당황스러웠다. 알고 보니 모두 int형으로만 변수를 선언해서 나눈 결과가 온전히 나오지 안고 몫만 나왔던 것. 필요한 숫자들을 따로 double형으로 선언하였고 입력값도 double형으로 받으니 정답! import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double max ..
별 찍기는 그냥 규칙성 찾기와 반복문이 전부다. 규칙만 찾고 반복문 코드만 짜면 끝. 알고리즘 문제 출처 : 백준 https://www.acmicpc.net/problem/2523 2523번: 별 찍기 - 13 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 내가 작성한 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i=0; i
알고리즘 문제 출처 : 백준 https://www.acmicpc.net/problem 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 내가 작성한 코드 문제를 풀다가 입력이 끝났다는 것을 어떻게 받아야 할지 몰라서 처음에 당황했다. 이런 걸 EOF 처리라고 하는데 자바에서는 어떻게 EOF를 처리하는지 서치해보았고 https://mygumi.tistory.com/236 를 참고하여 코드를 작성했다. 자바에서는 입력값에 대하여 EOF 처리를 할 때 Scanner 참조변수의 hasNextInt() 메소드를 활용할 수 있다. 자바의 EOF 처리를 기억하기 위해 코드를 포스팅한다. import java.util.Scanner; ..
현재 프로그래머스 알고리즘 문제를 따로 풀고 있지만 백준 알고리즘 문제는 처음으로 풀어보았다. 프로그래머스는 기본적인 코드의 폼을 제공하지만 백준은 빈 화면만 제공한다. 그래서 처음에 계속 컴파일 에러 뜨길래 이유를 알 수 없어서 서치해봤더니 클래스 이름을 Main으로 해야 작동한다고 한다.(이건 정올도 마찬가지) 백준의 문제를 처음부터 단계별로 조금 풀었는데 기초적인 문제는 제외하고 기억에 남는 문제 위주로 포스팅하겠다. 알람 시계 알고리즘 문제 출처 : 백준 https://www.acmicpc.net/problem/2884 2884번: 알람 시계 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12924 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 내가 작성한 코드 i부터 j까지의 합을 1부터 j까지의 합에서 1부터 i-1까지의 합을 빼는 것으로 구할 수 있는 것을 활용해서 코드를 짰다. 예시로 나온 7+8=15라는 점에서 생각해서 j의 최댓값은 n의 절반보다 1이 더 크게, i의 최댓값은 n의 절반만큼으로 정하고 반복문을 돌렸는데 정확도는 곧바로 통..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12945 코딩테스트 연습 - 피보나치 수 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = programmers.co.kr 내가 작성한 코드 처음에 이 문제를 접하고 무슨 이렇게 쉬운 문제가 다 있나 만만하게 보다가 큰코를 다칠 뻔했다. 프로그래머스에서 돌렸다가 에러가 떠서 ..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 내가 작성한 코드 카카오 신입 공채 1차 코딩 테스트 문제로 난이도 하의 81.78%의 정답률을 보이는 문제인데 나는 고전했다... 코드를 짜다보니 코드가 엄청 길어졌고 2를 나눈 몫과 나머지를 계속 쌓아서 코드를 짰었는데 시간 복잡도에서 계속 막혔다. 고민하다가 꼭 2진수로 바꾸지 않아도 된다는 아이디어를 얻게 되었다..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번� programmers.co.kr 내가 작성한 코드 자바에서 배열이 고지식하고 융통성이 없어서 좋아하지 않았는데 성능 측면에서는 ArrayList보다 배열이 더 빠르다고 하여 배열에 정을 붙이려고 노력하고 있다. 라이브러리도 곧잘 활용했지만 라이브러리 또한 무분별하게 사용하면 속도가 느려진다고 이야기가 들었다. 라이브러리는 편하지만 뭐든 적절하게 활용해야 하고..