본문 바로가기

분류 전체보기411

[백준] 4153번 : 직각삼각형 – JAVA [자바] https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 문제 문제 풀이 백준 4153번 직각삼각형은 브론즈 3 난이도의 수학 문제이다. 이 문제에서는 한 삼각형의 세 개의 변의 길이가 주어지고 그 삼각형이 직각삼각형인지 아닌지를 출력하면 된다. 직각삼각형이면 right을 출력하고 아니면 wrong을 출력하면 된다. 이 문제는 피타고라스의 정리를 이용해서 풀 수가 있다. 직각삼각형의 변 a, b, c가 있다고 하고 c가 가장 큰 변일 때 a² + b² = c²이다. 이 .. 2022. 7. 31.
[백준] 11653번 : 소인수분해 – JAVA [자바] https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 문제 문제 풀이 백준 11653번 소인수분해는 브론즈 1 난이도의 수학 문제이다. 이 문제는 되게 간단하다. 숫자 N이 주어졌을 때 이 N을 소인수 분해한 결과를 출력하면 된다. 예를 들어서 6이 주어지면 2와 3을 출력하면 된다. 이 문제는 간단한 while-loop을 이용해서 풀 수가 있다. 우선 n을 1이 될때까지 나눠야 하기 때문에 while-loop이 종료되는 기준은 n == 1이라고 설정한다. 따라서, while (n != 1)로 한다. 그리고 int i = 2로 초기화해서 선언하고 이 n이 i로 나눠지면.. 2022. 7. 31.
[백준] 10757번 : 큰 수 A+B – JAVA [자바] https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 문제 풀이 백준 10757번 큰 수 A+B는 브론즈 5 난이도의 수학 및 구현 문제이다. 이 문제는 큰 수 A와 B가 주어졌을 때 이 두 수의 합을 구하면 되는 문제이다. 이 문제는 int형이나 long형을 써서 풀 수 있는 문제가 아니다. 그 이유는 이 문제에서 입력으로 주어지는 수는 long형의 범위를 초과하기 때문이다. 만약에 long형을 쓰면 다음과 같은 예외(exception)가 뜨는 것을 볼 수가 있다. 따라서 이 문제는 BigInteger를 사용해야 한다. 만약에 BigInteger를 잘.. 2022. 7. 31.
[알고리즘] 계수 정렬 (Counting Sort) 목차 계수 정렬이란? 계수 정렬은 데이터 값을 직접 비교하지 않고, 단순하게 각 숫자가 몇 개 있는지 개수를 세어 저장한 후에 정렬하는 알고리즘이다. 기존의 정렬 알고리즘들은 위치를 바꾸며 정렬을 했는데, 계수 정렬에서는 크기를 기준으로 개수만 세면 되기 때문에 위치를 변경할 필요가 없다. 계수 정렬의 큰 특징은 값 비교가 일어나지 않기 때문에 속도가 빠르다는 것이다. 하지만, 개수를 저장하는 배열을 사용해야 하기 때문에 추가 공간이 필요하다. 그래서, 정렬해야 할 수의 범위가 작을 때에만 유리하다. 이 이유는 예를 보면서 설명하겠다. EX) 0, 100, 2, 10, 10000 오름차순으로 정렬하기 예를 들어서 정렬해야 할 수가 0, 100, 2, 10, 10000이면 고작 5개의 수를 정렬하는데 0부.. 2022. 7. 29.
반응형