알고리즘(8)
-
[백준알고리즘] 10773번 제로
문제출처 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 알고리즘 유형 알고리즘 분류: 구현 언어: JAVA 문제 접근 입력된 값들의 합계를 구함. 단,0이 입력될 경우 바로 이전 값은 합계에서 제외 1. 첫번째 입력값(K 총 건수)을 제외하고 입력값을 리스트로 받음 :: 처음엔 배열을 생각했다가 각 요소를 제거해야하는 상황이 있으므로, 구조체를 리스트로 변경 적용 2. while문 내부에서 요소 값이 '0' ..
2024.01.25 -
[백준알고리즘] 2738번 행렬 덧셈
문제출처 : https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 알고리즘 유형 알고리즘분류 : 수학 언어 : JAVA 문제 접근 처음 문제를 접했을 때 입력값을 어떤형태로 받아야할지에 대한 것이 고민됨. 대략 문제를 접했을 때, 2차원배열로 받으면 대상의 결과값을 편하게 덧셈한 결과를 출력할 수 있을 것으로 예상. 다만, 2중 for문을 여러 번 사용해야한다는 점이 찝찝했음. 코드 package org.example.question...
2024.01.22 -
[백준알고리즘] 1193번 직사각형에서 탈출
문제출처 : https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 알고리즘 유형 알고리즘분류 : 수학 언어 : JAVA 문제 접근 - 지그재그 순서 :: 규칙성을 찾기 위해 아래와 같이 숫자를 나열해보니 대각선 라인의 묶음단위로 분수의 규칙성을 찾음 순번 분수 1 1/1 2 1/2 3 2/1 4 3/1 5 2/2 6 1/3 7 1/4 8 2/3 9 3/2 10 4/1 11 5/1 12 4/2 13 3/3 14 2/4 15 1/5 [찾은 규칙] - 내가 말하는 묶음은 지그재그 대각선 한 줄을 의미 위의 숫자를 예를 들어 보자면 묶음단위 구성은 '순번' 1 / '순번' 2~3 / '순..
2024.01.19 -
[백준알고리즘] 1085번 직사각형에서 탈출
문제출처 : https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 알고리즘 분류 : 수학 언어: JAVA 문제 몰랐던 점 - 일단 좌표간 거리를 구하는 방법을 알수 없어서 검색해봄 접근 - (x,y)좌표가 주어졌을 때 (w,h)좌표 경계선까지의 최솟값 - XX: x (수평 0부터 x까지의 거리) - YY: y (수직 0부터 y까지의 거리) - WX: w-x ( x부터 w까지 수평 거리) - HY: h-y ( y부터 h까지 수직 거..
2024.01.17 -
[백준알고리즘] 10250번 ACM 호텔
문제 출처 : https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 문제 접근 - 엘레베이터와 가까운 거리부터 배정 - 거리가 같은 경우 낮은 층 수 부터 배정 - 방번호는 YXX 나 YYXX 형태로 배정(층수 Y는 100의 자리부터 시작됨) 엘레베이터 7 14 6 13 5 12 4 11 3 10 2 9 ... 1 8 15 1. 층수 구하기 예를 들어 10번째 손님이 3층짜리 호텔에서 방배정을 받는다고 가정하면, 아래와 같다. 엘레베이터..
2024.01.16 -
[자바알고리즘] 3. 최빈수구하기
*2020. 03. 17. 화 *최빈수구하기(가장 많이 출현한 수 구하기) 1. 어떻게 최빈수를 구하지? 2. 어차피 숫자를 비교하여 구하여 할 것 같으니 0부터 9까지의 수와 비교를 구하면 되지 않을까? 3. 최빈수를 구할 숫자들을 배열에 담아 0부터 9까지의 숫자와 비교를 하면 되지 않을까? 4. 그런데 어떤 방식으로 비교를 해야 최빈수를 구할 수가 있는거지? 5. for문을 이중으로 사용하여 하나는 최빈수를 구할 배열 인덱스로 사용하고 하나는 비교할 0부터 9까지의 수로 사용하면 되지 않을까? 6. 그런데 여기서 이중 for문을 어떻게 활용해야하지? 7. 먼저, 최빈수를 구할 배열 원소를 첫원소와 0부터 9를 비교하고 두번째 원소를 0부터 9를 비교하는 식으로 하면 되지 않나? - 잘못됨 이렇게 하..
2020.03.17