문제 -2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 11011, 11000, 11001 등이다. 10진법의 수를 입력 받아서 -2진수를 출력하는 프로그램을 작성하시오. ## 입력 첫 줄에 10진법으로 표현된 수 N이 주어진다. ## 출력 -2진법 수를 출력한다. 나머지가 0또는 1이나오게 하는것이 핵심인 문제이다. 예로 -13을 -2진수로 변환하는 경우를 살펴보면: -13 / -2 = 6, 나머지 -1 (10진수로 -1, -2진수로 1) 6 / -2 = 3, 나머지 ..
문제 2진수가 주어졌을 때, 8진수로 변환하는 프로그램을 작성하시오. 입력 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 주어진 수를 8진수로 변환하여 출력한다. 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 31251 12330 10156 41.016% https://www.acmicpc.net/problem/1373 풀이 코드 1번째 시도 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; public class..
문제 8진수가 주어졌을 때, 2진수로 변환하는 프로그램을 작성하시오. 입력 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. 3 1 4 출력 첫째 줄에 주어진 수를 2진수로 변환하여 출력한다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다. 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 44329 14980 12445 35.894% https://www.acmicpc.net/problem/1212 풀이 코드 첫번째시도 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public..

백엔드 팀원 중 한분과 프로젝트를 마치고 코드리뷰를 진행하였다. 말이 거창해서 코드리뷰이고 본인이 구현한 부분에 대해서 서로 이야기를 나누는 시간이였다. 나는 자격증 정보를 어떤식으로 불러오는지와 표출하는 방법등에 대해서 설명을 했고, 팀원분이 궁금해 하셨던 공공데이터 포털 API로 코드값을 넣어서 전달하는 부분을 중심으로 설명했다. 그리고 나는 팀원분이 구현했던 스프링시큐리티쪽에 관해서 질문을 했고 답변을 들었다. 이부분에 대해서 기록을 남기려고 한다. SpringSecurity 설명 시큐리티 - > 필터체인 내부에서 어떤식으로 동작하는지를 확인 사용자가 로그인하게 되면 http request가 들어오고 권한을 생성해서 (Authentication)토큰을 발급한다. 권한을 전달하면 PoviderMana..
문제 수빈이는 동생 N명과 숨바꼭질을 하고 있다. 수빈이는 현재 점 S에 있고, 동생은 A1, A2, ..., AN에 있다. 수빈이는 걸어서 이동을 할 수 있다. 수빈이의 위치가 X일때 걷는다면 1초 후에 X+D나 X-D로 이동할 수 있다. 수빈이의 위치가 동생이 있는 위치와 같으면, 동생을 찾았다고 한다. 모든 동생을 찾기위해 D의 값을 정하려고 한다. 가능한 D의 최댓값을 구해보자. 입력 첫째 줄에 N(1 ≤ N ≤ 105)과 S(1 ≤ S ≤ 109)가 주어진다. 둘째 줄에 동생의 위치 Ai(1 ≤ Ai ≤ 109)가 주어진다. 동생의 위치는 모두 다르며, 수빈이의 위치와 같지 않다. 출력 가능한 D값의 최댓값을 출력한다. 풀이 알고리즘 흐름 문제에서 주어지는 값들이 조금 모호하게 적혀있다. 여기서..
문제 양의 정수 n개가 주어졌을 때, 가능한 모든 쌍의 GCD의 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 < n ≤ 100)가 주어지고, 다음에는 n개의 수가 주어진다. 입력으로 주어지는 수는 1,000,000을 넘지 않는다. 출력 각 테스트 케이스마다 가능한 모든 쌍의 GCD의 합을 출력한다. 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 33868 13838 11355 41.641% https://www.acmicpc.net/problem/9613 풀이 코드 import java.io.BufferedReader; im..
문제 $n \choose m$의 끝자리 $0$의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, ≠0$n \ne 0$)이 들어온다. 출력 첫째 줄에 $n \choose m$의 끝자리 $0$의 개수를 출력한다. 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 50057 14119 11624 28.691% https://www.acmicpc.net/problem/2004 풀이 알고리즘 흐름 팩토리얼0의 개수 문제 처럼 2와 5의 승수가 겹치는 수를 구한다. 예를 들어 25C12 조합의 경우 25! / 13! * 12! 으로 표현될것이다. 즉 n! / (n-m)! * m! 이고 n! , (n..
문제 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500) 출력 첫째 줄에 구한 0의 개수를 출력한다. 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 70550 33569 28012 47.323% https://www.acmicpc.net/problem/1676 풀이 알고리즘 이문제는 입력값을 잘 살펴야한다. (0 ≤ N ≤ 500)의 범위로 500! 이라면 아래와 같은 값이 나온다. 122013682599111006870123878542304692625357434280319284219241358838584537315388199760549644750220328186301361..
문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다. 출력 첫째 줄에 N!을 출력한다 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 158609 85215 69905 53.948% https://www.acmicpc.net/problem/10872 풀이 쉬운 문제. 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(); int result = 1; for..
문제 1742년, 독일의 아마추어 수학가 크리스티안 골드바흐는 레온하르트 오일러에게 다음과 같은 추측을 제안하는 편지를 보냈다. 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다. 예를 들어 8은 3 + 5로 나타낼 수 있고, 3과 5는 모두 홀수인 소수이다. 또, 20 = 3 + 17 = 7 + 13, 42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23 이다. 이 추측은 아직도 해결되지 않은 문제이다. 백만 이하의 모든 짝수에 대해서, 이 추측을 검증하는 프로그램을 작성하시오. 입력 입력은 하나 또는 그 이상의 테스트 케이스로 이루어져 있다. 테스트 케이스의 개수는 100,000개를 넘지 않는다. 각 테스트 케이스는 짝수 정수 n 하나로 이루어져 있다. (6 ≤ n ..