SW
-
[백준 1427번] 소트인사이드 (Java 풀이)Algorithm/기타 2020. 1. 27. 01:27
백준알고리즘 1427번 : 소트인사이드 길이가 몹시 길수도 있는 숫자를 받아, 이를 내림차순으로 정렬하는 문제이다. 어차피 숫자만 받기때문에, String값으로 받은 뒤, split하고 해당 배열을 sort했다. 내림차순으로 sort해야하기 때문에 Arrays.sort(arr, Comparator.reverseOrder())를 이용하여 역순으로 정렬시켰다. 풀이 과정 1. 숫자를 받아, 이를 split하여 String 배열으로 만든다. 2. String 배열을 역순으로 정렬하고 출력한다. 소스 ▽ 더보기 import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main {// 1427번 소트 인사..
-
[백준 2738번] 행렬 덧셈 (Java 풀이)Algorithm/기타 2020. 1. 26. 00:12
백준알고리즘 2738번 : 행렬 덧셈 행렬의 크기 N*M이 주어지고, 이러한 행렬 2개를 더한 행렬합을 출력하는 문제이다. 각 N*M 크기의 행렬 2개를 행렬 변수에 담고, 이를 더해서 다시 출력하는 것은 시간이 많이 걸린다고 판단했기 때문에 N과 M이 주어진 즉시 N*M의 행렬을 하나 만든 다음, 받은 값을 N*M 행렬의 적절한 위치에 더해주어 문제를 풀었다. 풀이 과정 1. N*M 크기의 행렬 x를 정의한다. 2. 이중 for문을 통해 Scanner를 통해 받아온 값들을 순차적으로 행렬 x의 적절한 위치에 더한다. 3. 행렬 x를 출력한다. 소스 ▽ 더보기 import java.util.Scanner; public class Main {// 2738번 행렬 덧셈 public static void ma..
-
[백준 9093번] 단어 뒤집기 (Java 풀이)Algorithm/기타 2020. 1. 25. 16:50
백준알고리즘 9093번 : 단어 뒤집기 문장 전체를 뒤집는 것이 아니고, 공백으로 구분되어진 각 단어의 순서는 그대로 유지하되 각 단어를 거꾸로 출력하는 것이다. split method를 이용해서 문장에 대한 배열을 만든 다음, 각 단어를 거꾸로 출력하면 되겠다. 풀이 과정 1. 문장을 String 값으로 받은 뒤, 공백으로 문장을 split한 String 배열을 생성한다. 2. 배열을 for each문으로 돌리되, 각 단어의 길이를 재고, 가장 마지막 character부터 출력한다. 소스 ▽ 더보기 import java.util.Scanner; public class Main {// 9093번 단어 뒤집기 public static void main(String[] args) { Scanner sc = ..
-
[백준 9506번] 약수들의 합(Java 풀이)Algorithm/기타 2020. 1. 19. 20:58
백준알고리즘 9506번 : 약수들의 합 주어진 숫자의 완전수 여부에 따라 적합한 문장을 출력해주면 되는 문제이다. 완전수라 함은 숫자 n이 자신을 제외한 모든 약수들의 합과 같은 것을 의미한다. 완전수가 맞는지, 아닌지 확인하기 위해 해야할 것은 우선 숫자 n의 모든 약수들을 구하고, 그 합을 계산해보는 것이다. 나는 1부터 숫자 n의 제곱근까지의 값까지 for문을 돌려 for문이 돌아가는 것을 최소화하려고 했다. ArrayList에 값을 하나씩 추가한 뒤, 정렬을 하고, 가장 뒤에 있는 약수 n(이자 숫자 n)값은 없애주었다. 그리고 ArrayList내에 있는 약수들의 합이 n의 값과 같은지를 비교하고 결과에 따라 적절히 출력해주면된다. 풀이 과정 1. while문 내에 Scanner로 받는 값이 -1..
-
[백준 9625번] BABBA (Java 풀이)Algorithm/기타 2020. 1. 18. 12:19
백준알고리즘 9625번 : BABBA 전 단계의 A값이 B가 되고, B값은 AB값이 된다. 문제를 읽다보니, 피보나치 수열으로 풀어도 되겠다는 생각이 들었다. (B의 값은 결국 전 단계의 A와 B의 합이기 떄문에) 1단계 :0 1 2단계 :1 1 3단계 :1 2 4단계 :2 3 5단계 :3 5 6단계 :5 8 그러나 문제에서 주어진 조건대로 while문을 통해 풀어도 쉽게 풀릴 듯하여 방향을 바꾸고 말았다만. A와 B의 갯수를 int 변수로 받았는데, 값이 덮여버리지 않도록 임시 변수를 선언하는 방식이 유효하게 먹혔다. 마치 정렬에서도 A와 B의 순서를 바꿀때 임시 변수를 통해 값을 바꾸듯이. 풀이 과정 1. A의 갯수, B의 갯수를 저장한 int 변수를 선언 및 초기화한다. 2. 미리 정의해둔 임시 변..
-
[백준 1834번] 나머지와 몫이 같은 수 (Java 풀이)Algorithm/기타 2020. 1. 14. 23:12
백준알고리즘 1834번 : 나머지와 몫이 같은 수 철저하게 수학 공식과 데이터 범위만 따지는 문제이다. 문제를 읽어나가다보면, 더해주어야 하는 숫자의 갯수는 입력받는 값 N-1개라는 것을 알 수 있다. 또한, 이는 초항이 N+1이고, 등차가 N+1인 등차수열이라는 것 역시 알 수 있다. 나머지와 몫이 같으려면, 일단 나머지가 존재해야 하기 때문이다. 그러나 이만 믿고 int변수를 선언한 후 for문을 돌렸다간.. 실패를 면치 못한다. 아니 for문이 아니라 등차수열의 합 공식인 n(a+l)/2 를 이용해도 실패다. 언제나 우리는 집어넣을 수 있는 값 중 극한의 값을 집어넣어야한다. N값에 200만을 집어넣는다면 for문은 200만번-1번 돌것이고, int자료형이 담을 수 없는 값이 추출된다. 풀이 과정 ..
-
[백준 2851번] 슈퍼마리오Algorithm/기타 2020. 1. 12. 23:38
백준알고리즘 2851번 : 슈퍼마리오 문제를 정확히 이해하는 데 시간이 조금 걸렸던 것 같다. 요지는, 무조건 처음의 버섯은 먹어야하는 것이다. 즉, 가운데부터 먹고 가운데부터 끊을 수 없다. 시작은 1번부터 하는 것으로 고정이 되는 것이고, 끝은 2번째가 될 지, 10번째가 될지 모르는 것이다. 나는 가운데부터 먹고서도 연속으로 버섯을 먹기만 하면 되는 것인 줄 알고,, 코드를 수정했다. 역시 문제를 잘 파악하는 것이 문제 해결을 위한 첫 번째 단계인것이다.. 풀이 과정 1. 버섯 10개의 점수를 받아 배열에 넣는다. 여러 변수들을 정의한 뒤, while문에 조건을 설정하여 해당하는 조건만큼만 while문이 돌아가도록 만든다. 2. while문의 조건은 다음과 같다. 2-1. 다음 버섯이 10번째 버섯..
-
Dan + Shay, Justin Bieber - 10,000 Hours [가사/해석]Music 2020. 1. 10. 00:59
Dan + Shay, Justin Bieber - 10,000 Hours [가사 / 해석] ※ 의역이 포함되어 있습니다. ※ Do you love the rain, does it make you dance? 비를 좋아하나요? 비가 당신을 춤추게 하나요 ? When you're drunk with your friends at a party 친구들과 함께있는 파티에서 취할때면 What's your favorite song, does it make you smile? 당신을 미소짓게 만드는 노래는 무엇인가요? Do you think of me? 나를 생각하나요. When you close your eyes, tell me, what are you dreamin'? 잠이 들때면 무슨 꿈을 꾸는지 말해줘요. Ev..