본문 바로가기

알고리즘89

SW 14413. 격자판 칠하기 (BFS) SW Expert Academy SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 자바 어려웠다. 그래도 가로 세로 비교해서 같은게 있으면 impossible로 구현을 했는데 런타임 오류가 자꾸나서 방법을 찾아보니까 BFS (너비우선탐색) 방법을 이용해야한다고 한다. 그래서 공부를 해보앗따. import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Solution{ static final int MAX_N = 10; static int[][] D = {{0,1},{-1,0},{1,0},{0,-1}}; static int.. 2023. 5. 14.
10757번 문제 : 큰 수 A+B 10757번: 큰 수 A+B (acmicpc.net) 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 자바 int는 2의 21승까지 표현 가능하니까 택도 없다. (-2,147,483,648 ~ 2,147,483,647) long형은 8바이트로 2의 64 승이지만 이것도 택도 없다. (-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807) 그래서 찾아보니까 BigInteger라는 자료형이 있다는 것을 알게되었다 ! - BigInteger은 문자열 형태로 이루어져 있어 숫자의 범위가 무한. 선언 : BigInteger num = new BigInteger("qwe4rt"); 계산.. 2023. 5. 5.
1193번 문제 : 분수찾기 1193번: 분수찾기 (acmicpc.net) 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 자바 N개의 갯수만큼 분수들을 나눠봤다 1 : 1/1 2 : 1/2, 2/1 3 : 3/1, 2/2, 1/3 4 : 1/4, 2/3, 3/2, 4/1 5: 5/1, 4/2, 3/3, 2/4, 1/5 이렇게고 덩어리마다 순서대로 쓴 거임 보면 홀수번째 덩어리는 분자는 N번째 덩어리면 N까지 증가하고 분모는 N부터 1까지 감소 짝수번째 덩어리는 분모는 N까지 증가, 분자는 N부터 1까지 감소하는 거를 알 수 있었다. 덩어리까지의 갯수를 표시하는 변수 : dong T숫자가 몇 번째 덩어리에 들어있는지를 알기 위해서 i의 수를 1부터 계속 증가시켜가며 더.. 2023. 5. 5.
2903번 문제 : 중앙 이동 알고리즘 2903번: 중앙 이동 알고리즘 (acmicpc.net) 2903번: 중앙 이동 알고리즘 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다. www.acmicpc.net 자바 11분 만에 풀었다. 생각보다 되게 간단했는데 중복하는 점은 한 번만 저장하고 과정을 N번 거친 후 점 몇 개가 저장되는지 ! 1번 거쳤을 때는 9개 2번 : 25개 3번 : 49개 ... 이런식으로 3의 제곱부터 시작해서 홀수개의 제곱만큼 증가하는 줄 알았느데 5번이 1089인 것을 보니 아니었다. (11의제곱이 아니므로) 그래서 이번엔 만들어지는 사각형의 갯수를 봤는데 1번 : 4개 2번.. 2023. 5. 5.
SW 1288. 새로운 불면증 치료법 SW Expert Academy SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 자바 N의 배수 번호인 양을 셀 때 0~9까지 수를 모두 볼 수 있을 때 최소 양을 센 횟수 처음엔 양을 센 횟수라길래 입력 N=1295일 때 5N번째에 6475번 양을세고 그러면 0~9까지 다 볼 수있다. 여기서 나는 5가 정답으로 나와야되는 수인 줄 알았는데 6475번 을 구하눈 거였음. 아무튼 간단 ! 나는 str문자열에 0~9까지의 숫자를 넣어놓고 N의 배수대로 진행하면서 한 자리씩 잘라서 그 문자열이 str에 있었다면 !로 대체해버리고 그 반복은 str문자열이 !!!!!!!!!!이 아닐 때 계속 * 헷갈렸던 거는 numbe.. 2023. 5. 5.
SW 1928. Base64 Decoder SW Expert Academy SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 자바 이거는 문제를 이해하는 것부터 정말 오래걸렸다 .... Base64 == 64진법 1. 원본 문자열 3byte를 아스키코드로 변환해서 24비트 버퍼에 넣는다. 2. 6비트씩 끊어서 Base64 테이블의 문자로 변환. \ 1. 디코딩된 문자열의 4byte를 Base64테이블을 보고 변환해서 24비트 버퍼에 넣는다. 2. 8비트씩 끊어서 아스키코드표의 문자로 변환. 이해하고 나면 이렇게 간단한디 ... 작업 - 인코딩되니 문자열을 Base64값으로 변환해서 arr이라는 ArrayList 제일 뒤에 계속해서 넣음. 뒤에서부터 넣은 .. 2023. 5. 5.
SW 1940. 가랏! RC카 ! SW Expert Academy SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 자바 RC카의 상태는 3가지 0: 유지, 1: 가속, 2: 감속 . 1,2 일 경우는 가속도의 값이 추가로 주어짐. 가속도의 단위는 m/s^2이고 가속도의 값은 1m/s^2 또는 2m/s^2. - 입력 : test케이스 수 T, command의 수 N , 매 줄마다 각각의 command. - 구해야하는 것 : N초동안 이동한 거리 - 생각해야할 것 : 감속속도 > 현재속도 - > 속도 0/ms^2 현재속도를 저장할 변수 speed 총 이동 거리를 저장할 변수 : result 현재 차의 상태 저장할 변수 : ch ch가 0이면 현 상.. 2023. 5. 5.
2720번 문제 : 세탁소 사장 동혁 2720번: 세탁소 사장 동혁 (acmicpc.net) 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 자바 생각보다 간단했던 문제. 화폐값들을 내림차순으로 배열에 담아놓고 반복문으로 배열요소를 돌면서 거스름돈으로 주어진 값에 계속해서 나눠감. 몫(dshare)을 거스름돈/배열요소 값으로 지정해놓고 StringBuilder에 append함. 그리고 *change는 방금 구한 dshare에서 배열요소 (화폐 가격)을 곱한 값을 빼줘야함. 그래야 또 그 나머지로 다음 화폐가 얼마나 필요한지 구할 수 있으니까 근데 이제 화폐가 실수이다보니 double형 배열로 선언을 헀기 때문에 do.. 2023. 5. 5.
11005번 문제 : 진법변환2 11005번: 진법 변환 2 (acmicpc.net) 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 자바 이번에는 10진법 수 N을 B진법으로 변환하는 문제 ! 10진법을 N진법으로 변환하는 방법은 N을 B로 나눠서 몫은 계속해서 아래 써 내려가고 그 몫에 대한 나머지는 오른쪽에다 기재한뒤 몫이 B보다 작아질 때까지 하다가 다 끝나면 맨 아래 남은 몫부터 나머지의 역순으로 올라가는 방식 import java.io.BufferedReader; import java.io.IOException; import .. 2023. 5. 5.
728x90