java

Algorithm/백준

백준 14500번 : 테트로미노(Java)

https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net [풀이] 'ㅜ'자 모양은 DFS로 탐색하는 것이 불가능 하지만, 그 외의 모양은 DFS로 탐색이 가능합니다. 그렇기에, 'ㅜ'자는 별개의 메소드로 값을 구하고, 다른 모양들은 DFS를 통해 값을 구했습니다. total 변수가 4일 경우에는 탐색을 멈추도록 했습니다. 별개의 메소드로 'ㅜ'를 구할 때 모양이 돌아가는 경우도 고려해서 조건문을 구현했습니다. N과 M , x와 y에 헷갈리지 않도록 메소..

Algorithm/백준

백준 17086번 : 아기 상어 2(Java)

https://www.acmicpc.net/problem/17086 17086번: 아기 상어 2 첫째 줄에 공간의 크기 N과 M(2 ≤ N, M ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 공간의 상태가 주어지며, 0은 빈 칸, 1은 아기 상어가 있는 칸이다. 빈 칸의 개수가 한 개 이상인 입력만 주어진다. www.acmicpc.net [풀이] BFS를 이용해서 풀었습니다. 시작점을 큐에 넣은 이후, dis 배열에 거리에 대한 최소값을 저장하면서 계산합니다. 입력값을 받을 때 1이 있는 곳이 아기상어가 있는 칸이므로, 처음에 이 부분에 대해서만 큐에 담습니다. [코드] import java.io.BufferedReader; import java.io.IOException; import java.io...

Algorithm/백준

백준 16943번 : 숫자 재배치(Java)

https://www.acmicpc.net/problem/16943 16943번: 숫자 재배치 두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다. 가능한 C 중에서 B보다 작으면서, 가장 큰 값을 구해보자. C는 0 www.acmicpc.net [풀이] dfs를 이용한 브루트포스형의 문제입니다. 처음 입력 받는 값은 숫자를 재배치 해야하므로, 값을 하나씩 저장하기 위해 배열로 선언, 비교가 되는 변수 b는 정수형으로 선언합니다. 출력해야하는 answer 변수는 -1로 초기화합니다. dfs를 구현할 때 배열의 해당 인덱스를 사용했는지 파악하기 위해 visited라는 boolean형의 배열 변수를 선언했습니다. dfs..

Algorithm/백준

백준 10798번 : 세로읽기(Java)

https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net [풀이] 구현과 관련된 문제였습니다. 2차원 char형 배열의 인덱스에 대한 이해가 필요한 문제였습니다. null에 해당하는 아스키코드인 '\0' 그리고, 공백을 구분할 수 있어야 했습니다. [코드] import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class M..

Algorithm/프로그래머스

프로그래머스 : 124 나라의 숫자(Java)

https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr [풀이] 구현 관련한 문제였습니다. 처음에는 배열을 사용하지 않고 단순하게 while 반복문 안에서 식을 전개하였는데 이는 효율성에서 점수를 얻지 못했습니다. 그렇기에 배열에 4,2,1을 초기화 한 후, 이 배열의 값을 answer 변수에 추가하는 식으로 변경했습니다. 1,2,4 3개의 숫자를 이용하기 때문에 3으로 나눈 후, 나머지가 0일 경우에는 4를 넣는 식으로 진행해야 합니다. [코드] public String solution(int n) { String answer = ""; int temp; while (n > 0) { t..

Algorithm/백준

백준 1527번 : 금민수의 개수(Java)

https://www.acmicpc.net/problem/1527 1527번: 금민수의 개수 첫째 줄에 A와 B가 주어진다. A는 1보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. B는 A보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net [풀이] 기본적으로 반복문을 하면, 메모리 초과가 발생합니다. 그렇기에 저는 재귀적인 방법을 이용해서 문제를 접근했습니다. 4와 7이 있는 숫자는 4와 7에 10을 곱한후 각 숫자를 더한 값을 확인해야 합니다. 입력 숫자가 범위가 크기에 long형으로 선언했습니다. [코드] import java.io.BufferedReader; import java.io.IOException; import ja..

skyey94
'java' 태그의 글 목록 (12 Page)