본문 바로가기

algorithm50

[JAVA] 간단하게 진법변환하기, 숫자 reverse 간단한 진법 변환 코드입니다. 연습 겸 한번 짜본 내용입니다. 예시로 든 진법이 아니더라도 원하는 숫자로 바꾸시면 변환 가능합니다! 10진법 숫자를 2진법으로 변환 10진법 숫자 14를 2진법으로 바꾸면 1110이 됩니다. 식 값 나머지 14 / 2 7 0 7 / 2 3 1 3 / 2 1 1 1 / 2 0 1 주어진 값을 2로 나눈 나머지를 문자열에 더해갑니다. 이때 뒤에서부터 더해가야 하기에 새로 더해주는 값은 문자열의 앞에 더해줘야 합니다. int num = 14; String ans = "";//값을 더해주기 위한 빈 문자열 선언 while (num > 0) { ans = (num % 2) + ans;//문자열의 앞에 num을 2로 나눴을 때의 나머지를 더해준다. num /= 2;//다음 턴을 위해.. 2020. 5. 4.
[백준] 1806.부분합 (java) / 투포인터, 슬라이딩 윈도우 @투포인터, 슬라이딩 윈도우 / 14m 설마 진짜 이렇게 하면 풀리나 했는데 진짜였다. 투포인터 개념을 이 글을 보고 공부했는데, 이 방법으로 풀면 바로 풀 수 있다. 투 포인터(Two Pointers Algorithm), 슬라이딩 윈도우(Sliding Window) (수정: 2019-09-09) 조금 성향이 비슷하다고 생각하는 기법 2개를 함께 쓰려 합니다.첫 번째로 소개해드릴 기법은 투 포인터(tw... blog.naver.com 풀이는 이 글이 훨씬 잘 나와 있으므로 따로 적지 않았다. 문제 링크 https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 .. 2020. 3. 14.
[백준] 2531/15961.회전초밥 (java) / 투포인터, 슬라이딩 윈도우 @투포인터, 슬라이딩 윈도우 / 32m 두 문제는 범위 제한 빼고는 같은 문제이다. 15961번이 범위가 훨씬 크다 2531번은 정올 2572번과 같고 15961번은 정올 2577번과 같다 쿠폰때문에 조금 헷갈렸다. 문제 링크 2531번 https://www.acmicpc.net/problem/2531 2531번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤ k ≤ 3,000 (k ≤ N), 1 ≤ c ≤ d이다. 두 번째 줄부터 N개의 줄에는 벨트의 한 위치부터 시작하여 회전 방향을 따라갈 때 초밥의 종류.. 2020. 3. 14.
[백준] 1644.소수의 연속합 (java) / 투포인터, 슬라이딩 윈도우, 에라토스테네스의 체(소수 구하기) @투포인터, 슬라이딩 윈도우, 에라토스테네스의 체(소수 구하기) / 1h 25m 문제를 읽어보고 슬라이딩 윈도우라는 것은 알았는데, 소수 구하는 방법을 따로 몰라서 직접 구현했더니 시간 초과..ㅎㅎ 그래서 에라토스테네스의 체 라는 방법을 공부해서 풀었다. 문제 링크 https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 문제 하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 몇 가지 자연수의 예를 들어 보면 다음과 같다. 3 : 3 (한 가지) 41 : 2+3+5+7+11+13 = 11+13+17 = 41 (세 가지) 53 : 5+7+11+13+17 = 53 (두 가지) 하지만 연속된 소수의 합으로 나타낼 수 없는 자연수들도 있는데, 20이 그 예이.. 2020. 3. 14.
[백준] 2075.N번째 큰 수 (java) / 시뮬레이션? @시뮬레이션? / 26m 시간과 메모리가 터지지 않을까 걱정돼서 그냥 무작정 풀면 안 될 것 같아서 고민 좀 하고 풀었다. 무난한 문제였음! 문제 링크 https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 생각의 흐름 1. 중복되는 값이 없으므로, 처음에는 그냥 int형 배열을 만들어서 거기 index에 맞게 넣고, 끝부터 탐색하면서 0이 아닌 수 중 N번째 값을 찾아볼까 했는데 (사실 애초에 말도 안되지만) 값 범위가 20억이길래 바로 포기 2. 한 줄씩.. 2020. 3. 13.