생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q1000/Q1449.kt 길이가 L인 테이프를 최소로 사용하여 파이프 수리를 하고자 한다. 최소로 사용한 개수를 출력하여라. 처음 생각파이프의 양쪽을 0.5 만큼 덮어야한다. 파이프의 고장난 곳은 무조건 정수이므로 0.5는 수리를 하는데 아무런 영향을 끼치지 못한다.▶ 따라서 양쪽의 0.5를 못쓴다 생각하고 처음 입력받은 테이프의 길이 L에서 -1을 뺀 값을 테이프로 사용하였다. 다음 생각고장난 부분만 살펴봐도 상관이 없지만 길이가 최대 1000밖에 안하므로 길이가 1000인 배열을 만들어 고장난 곳을 1로 표시하였다. 다다음 생각배열을 처음부터 살펴보면서 값이 1인 즉, 고장난 ..
생각월과 일이 숫자로 주어진다. 2007년의 해당 월과 일이 무슨 요일인지 출력하시오. (월요일이면 MON 일요일이면 SUN 같이 출력) 처음 생각Java에서는 Calendar Class를 사용하면 쉽게 날짜에 대한 구하고 싶은 것들을 구할 수 있다.▶ set을 통해 원하는 날짜를 입력해준후 해당 날의 요일을 구할 수 있다.▶ 한가지 주의점이라면 Calendar class의 메소드를 보면 Month는 0부터 시작하는걸 알 수 있다. 따라서 입력받은 월의 -1을 해주어야한다. 다음 생각get 메소드와 Calendar.DAY_OF_WEEK 를 통해 1~7의 return 값을 얻을 수 있다. 1은 일요일 7을 토요일을 의미한다. String 배열로 1~7에 해당하는 요일값의 출력을 미리 저장해 놓아도되지만 이..
생각|\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__| 를 그대로 출력한다. 처음 생각Java를 사용하면 \을 처리해주기위해서 \와 "를 출력해주기 위해서 귀찮은 반복작업을 해야한다. 하지만 Kotlin을 사용하면 이야기가 달라진다. 다음 생각Kotlin에서는 String 값을 넣을 때 """ 내용 """ 을 사용해주면 내용의 문자열 그대로 저장 및 출력을 지원한다. 따라서 개의 모양을 복사해서 내용에 넣어주면 그대로 출력이 가능한다. 방안1) Kotlin의 그대로 문자열을 출력할 수 있는 """ """ 의 사용 1234567891011import java.util.*fun main(args:Array){ var sc : Scanner = Scanner(System.`in`) ..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q1000/Q2741.kt N 을 입력받는다. 1부터 N까지 출력한다. 처음 생각Kotlin의 반복문은 Python과 비슷하다. 일반적인 Java의 문법과는 다르게 in을 사용하여 범위를 정해주고 step을 사용하여 변수 증가를 시켜준다.▶ 또 Scanner를 입력받을 때, System.in에서 이미 이 'in'이 Kotlin에서는 미리 정의되어있는 단어이므로 'in'으로 구분을 지어주어야 사용이 가능하다. 방안1) Java 12345678910import java.util.Scanner; public class Solution { public static void main(Stri..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q10000/Q13908.java 비밀 번호를 알아내려고 한다. 3자리면 000~999 2자리면 00~99 까지 가능하다. n자리의 비밀 번호중 m개의 숫자가 무조건 사용되어야한다. 예를들어 m이 2로 주어지고 3 4 가 주어지면 n이 2라면 34 43 밖에 비밀번호가 될 수 없다. n과 m이 주어질 때, 비밀번호가 될 수 있는게 몇개인지 출력하여라. 처음 생각n이 최대 7로 모든 경우를 보더라도 0000000~9999999로 천 만개만 봐주면된다. 따라서 완전 탐색을 통해 결과를 얻을 수 있다. 다음 생각천 만개에 대해서 매번 생성된 비밀번호마다 반복문을 이용해서 해당 숫자가 있나..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q10000/Q16236.java 아기 상어가 혼자서 먹이를 혼자 먹으러 돌아다닐 때, 최소로 이동한 거리를 구하여라. 아기 상어는 자신보다 큰 물고기는 지나가지 못한다. 먹이가 여러개일때는 최소 거리, 같은 거리에 먹이가 있을 때는 위쪽, 위쪽에 여러 먹이가 있을 경우는 왼쪽을 우선시 한다. 처음 생각먹이를 찾아 그 먹이를 잡아 먹어야한다. Queue를 사용해서 BFS 탐색을 통해 현 아기 상어 위치에서 먹이를 찾아주어야겠다고 생각하였다. 다음 생각4방향 탐색을 통해 먹이를 찾는 탐색을 한다. 여러 먹이가 발견되면 해당 탐색 회차에서의 모든 먹이를 비교해서 조건에 만족하는 먹이를 ..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q10000/Q16235.java 상도가 나무 재테크를 한다. 봄 여름 가을 겨울에 각 각 일어나는 일이 다르다. 봄에는 나무가 땅의 양분을 자기 나이만큼 흡수한다. 같은 땅에서는 나이가 어린 나무부터 양분을 흡수한다. 이 때 자기 나이보다 땅에 양분이 없으면 그 나무는 즉사한다. 여름에는 봄에 즉사했던 나무들이 해당 나무의 나이/2 만큼 해당 좌표의 땅에 양분이 된다. 가을에는 나무의 나이가 5의 배수이면 주변 모든 좌표(8개)에 나이가 1인 나무를 퍼트린다. 겨울에는 로봇 S2D2가 땅을 돌아다니면서 입력으로 주어진 해당 땅의 양분을 공급한다. 위 같은 과정을 거치면 1년이 흐른..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q10000/Q16234.java 각 나라의 인구가 적혀있는 2차 배열이 주어진다. 한 나라가 인접 나라와의 차이가 L이상 R이하일 경우 국경을 개방하고 인구이동이 시작된다. 인구의 이동은 국경을 개방한 나라들을 연합으로 취급하여 연합의 총 인구수/나라 수 로 진행된다. 인구 이동이 몇 번 발생하는지 출력하여라. 처음 생각BFS 탐색을 통해 한 나라로 시작해서 국경을 개방할 수 있는 나라일 경우 같은 연합으로 번호를 지정해주면서 진행을 하였다. 방문 표시로 연합 번호를 사용해서 연합 번호가 부여되어 있을시에는 탐색에서 건너뛰게 구현하였다.▶ 한 번의 BFS 탐색이 끝나면 다시 모든 ..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q10000/Q14395.java 바꿀 숫자 S와 목표 숫자 T가 주어진다. * + - / 를 해서 S에서 T로 바꿀 수 있다면 사용한 연산자들을 출력하고 바꿀 수 없다면 -1을 S와 T가 동일하게 주어진다면 0을 출력하여라. 연산자로 바꾼다는 것은 다음을 의미한다. + : S = S+S * : S = S*S - : S = S-S / : S = S/S 처음 생각처음 문제를 봤을 때, "왜이렇게 정답률이 낮지?"라는 생각을 했었다. 그리고 풀고나서는 정답률을 낮추는데 기여했다.▶ 매번 틀릴때마다드는 생각이지만 문제를 잘읽어야한다. 다음 생각S에서 T로 바꾸기가 가능하다면 최소의 연산 ..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q1000/Q3184.java 울타리 안에 양과 늑대가 있다. 양이 더 많을 경우 늑대가 죽고 그 외는 늑대가 양을 잡아먹는다. 울타리는 #로 구별되어 있으며 하나라도 이어져있으면 같은 울타리 안이다. 하루 밤이 지났을 때 살아남은 양과 늑대의 수를 출력하여라. 처음 생각맵을 탐색해서 결과를 도출하는 전형적인 BFS 탐색 문제인것 같다. 이동할 수 없는 지역(#)이 아닌 곳에서 부터 탐색을 시작해 방문체크를 해가면서 상 하 좌 우로 이동이 가능하면 queue에 넣어준다. 다음 생각양과 늑대의 수를 세야하므로 v나 o가 들어오면 각 변수를 +1 시켜준다. 양과 늑대의 수를 센후 해당 ..
- Total
- Today
- Yesterday