목록Algorithm (87)
Dazzling 개발 노트
문제 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행 두번째 연산은 N이 K로 나누어 떨어질 때만 선택 가능 1. N에서 1을 뺀다 2. N을 K로 나눈다 입력조건 N(2
문제 여러 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드를 한 장 뽑는 게임. 단 아래의 룰을 지키며 카드를 뽑아야 함 1. 숫자가 쓰인 카드들이 N * M 형태로 놓여있다. 이때 N은 행의 개수를 의미하며 M은 열의 개수를 의미 2. 뽑고자 하는 카드가 포함되어 있는 행을 선택 3. 선택된 행에 포함된 카드들 중 가장 숫자가 낮은 카드를 선택 4. 처음 카드를 골라낼 행을 선택할 때 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 카드를 뽑을 수 있도록 전략 필요 입력 예시 출력 예시 3 3 3 1 2 4 1 4 2 2 2 2 2 4 7 3 1 8 3 3 3 4 3 풀이/후기 각 행마다 가장 작은 수를 찾은 뒤에 그 수 중에서 가자 큰 수를 찾기 코드 import java.io.*; ..
[백준] 1629 - 곱셈 (Java) 문제 https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 풀이/후기 수상할정도로 단순한 문제처럼 보이지만, 생각할 것이 많은 문제였다. 당연히 입력받은 값끼리 제곱하여 나머지 구하는 문제는 틀렸다고 채점된다. long 자료형 하나로 풀기는 가능하지만, 제곱을 하게되면 그 이상이 나오기 때문에 결과값이 달라 틀렸다고 채점되는것이다. 이 문제는 모르는 것을 인정하고 바로 검색을 하게됐는데, - 지수법칙 - 모듈러 합동 공식 이 두가지를 이용하면 간단하게 풀 수 있다. 두가지 방..
[백준] 1074 - Z (Java) 문제 https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 풀이/후기 처음 풀이가 꽤 마음에 들었는데 배열의 크기가 3 이상이 되면서 잘 안됐당... 검색해보니 당연히 모든 배열을 다 채운 후에 답을 얻어내는 접근은 시간초과가 난다고 한다. 주어진 특정 부분만 돌아야 하므로 문제에서 주어진 r과 c가 어느 구역에 포함되는지를 판단해야 한다. 풀다가 막혀서 검색을 했었는데, 내 코드랑 가장 비슷한 코드를 ..
[백준] 18222 - 투에 모스 문자열 (Java) 문제 https://www.acmicpc.net/problem/18222 18222번: 투에-모스 문자열 0과 1로 이루어진 길이가 무한한 문자열 X가 있다. 이 문자열은 다음과 같은 과정으로 만들어진다. X는 맨 처음에 "0"으로 시작한다. X에서 0을 1로, 1을 0으로 뒤바꾼 문자열 X'을 만든다. X의 뒤에 www.acmicpc.net 풀이 문제 풀기 실패...^^ 풀이를 보는데도 이해하기 힘들어서 다음주 스터디 시간에 같이 공유하기로 했다! 코드 import java.io.*; public class Main { static long k; static String X = "0"; public static void main(String[] ar..
[백준] 17829 - 222-풀링 (Java) 문제 https://www.acmicpc.net/problem/17829 17829번: 222-풀링 조기 졸업을 꿈꾸는 종욱이는 요즘 핫한 딥러닝을 공부하던 중, 이미지 처리에 흔히 쓰이는 합성곱 신경망(Convolutional Neural Network, CNN)의 풀링 연산에 영감을 받아 자신만의 풀링을 만들고 이를 22 www.acmicpc.net 풀이 2*2 형태로 잘라서 배열 정렬 후 2번째 큰 숫자들만 뽑아서 새로운 배열을 만드는 방식으로 풀었다. Arrays.sort를 써도 되나,,, 하면서도 빨리 완성이나 해보고 싶어서 일단 사용함. 근데 이 방법의 정렬은 기본이 오름차순이라 당연히 Collections.사용해서 내림차순으로 변경하려 했는데,..
문제 https://www.acmicpc.net/problem/3107 3107번: IPv6 첫째 줄에 올바른 IPv6 주소가 주어진다. 이 주소는 최대 39글자이다. 또한, 주소는 숫자 0-9, 알파벳 소문자 a-f, 콜론 :으로만 이루어져 있다. www.acmicpc.net 풀이 첫번째 풀이 난 이차원 배열을 이용해서 풀었음. 입력받은 문자열을 이차원배열에서 임시 저장 후 출력은 StringBuilder를 이용함. ::로 생략된 경우 어느 위치, 얼만큼 생략됐는지 판단하는 부분이 어려웠던 것 같음. 일단 :: 부분은 :zero:로 대체하고 length를 이용해 몇 개가 생략되는지 판단함. (근데 length 하나만으로는 판단할 수 없음 ㅎㅎ; 그치만 반복문2에서 대체가 가능함.) zero를 만나면 "..