SW
-
[백준 1406번] 에디터 (Java 풀이)Algorithm/스택(Stack) 2020. 3. 7. 16:48
백준알고리즘 1406번 : 에디터 각 명령어에 맞추어 실행되는 에디터를 만드는 문제이다. 커서를 좌측 우측으로 옮기거나, 문자를 지우거나, 문자를 추가하는 간단한 에디터이다. 그렇지만 문제는 절대 간단하지 않았다. 시간 초과가 더럽게 많이 났기 때문에. 처음엔 커서의 위치를 정수 변수로 지정하여 String값을 subString해서 지지고 볶고 하려고 했는데 시간 초과가 났고, 다음엔 ArrayList를 이용해서 add와 remove를 반복하면서 삭제와 추가를 했는데 역시 시간 초과가 났다. ^^ 결국 학습과 검색끝에 Charcter Type의 두 Stack을 이용해서 풀기로했는데, Scanner로 푸니 시간초과가 났다. BufferedReader와 Scanner의 차이는 미미할 것이라고 생각했던 나의 ..
-
[백준 1431번] 시리얼 번호(Java 풀이)Algorithm/정렬(Sort) 2020. 3. 2. 21:56
백준알고리즘 1431번 : 시리얼 번호 주어진 3가지 조건대로 시리얼번호를 정렬해주면 된다. 1. String.length()를 compareTo method내에 첫번째 조건으로 집어넣는다. 2. 1번의 조건에서 비교불가한 것은, string의 character값을 하나씩 불러와서 그 byte 값이 (byte)'0'보다 크고, (byte)'9'보다 작거나 같은 것들만 더해주어 비교한다. 3. 2번의 조건에서 비교불가한 것은, 각 character별로 하나씩 비교해준다. 소스 ▽ 더보기 import java.util.ArrayList; import java.util.Comparator; import java.util.Scanner; public class Main { public static void ma..
-
[백준 11656번] 접미사 배열 (Java 풀이)Algorithm/정렬(Sort) 2020. 3. 1. 15:19
백준알고리즘 11656번 : 접미사 배열 주어진 문자열의 접미사를 모두 출력하되, 알파벳순으로 정렬하여 출력하는 문제이다. Split method를 이용해 받은 문자열을 배열에 담고, 이와 똑같은 배열을 하나 만들고 난 뒤 이중 for문을 돌려 접미사 배열을 생성해준다. Arrays.sort method를 이용해 정렬한 뒤 출력한다. 풀이 과정 1. Split으로 문자 하나하나를 String 배열에 담는다. 2. 1번과 똑같은 String 배열을 만든 뒤, 1번의 것들을 순차적으로 더하여 접미사를 생성한다. 3. Arrays.sort를 이용하여 배열을 정렬한 뒤 출력한다. 소스 ▽ 더보기 import java.util.Arrays; import java.util.Scanner; public class M..
-
[백준 1292번] 쉽게 푸는 문제 (Java 풀이)Algorithm/기타 2020. 2. 28. 20:11
백준알고리즘 1292번 : 쉽게 푸는 문제 1이 한번, 2가 2번... 45가 45번.. 과 같은 방식의 수열의 특정 구간에 대한 합을 구하는 문제이다. 어떻게 해야하나 난처했으나, 일단 시간 제한이 2초이고 구간의 최대 길이가 1000까지이기 때문에 수열을 미리 만들어 놓고 맘 편하게 for문을 돌려도 되겠다 싶었다. 풀이 과정 1. ArrayList를 선언하고, 1000번 동안 값을 집어넣는다. 2. 숫자와 해당 숫자를 집어넣은 횟수가 일치한 경우, 숫자를 올린다. 3. 주어진 구간 동안의 ArrayList의 값을 더하고 출력한다. 소스 ▽ 더보기 import java.util.ArrayList; import java.util.Scanner; public class Main { // 1292번 쉽게 ..
-
[백준 10773번] 제로 (Java 풀이)Algorithm/기타 2020. 2. 27. 18:48
백준알고리즘 10773번 : 제로 등장하는 숫자들의 합을 구하되, 숫자 0이 나오면 가장 최근에 나온 숫자는 합에서 제외하여 총 합을 출력하는 문제이다. 처음에는 0은 바로 방금 전에 나온 숫자만 빼주는 문제인 줄 알았다. 그러니까, 3, 4, 5, 0, 0 과 같은 방식으로 나왔으면, 5는 없어지되, 마지막 0은 정상적으로 더해줘야 되는 값인줄 알았는데 결과적으로 문제는 0의 갯수만큼 가장 최근에 나온 숫자들을 합에서 제외하는 것을 요구한다. 즉 해당 예제의 답은 4와 5를 제외한 3인것이다. 0의 갯수를 Count, 다른 숫자들은 List에 집어 넣은 뒤, LIst에서 0의 갯수만큼을 뺸 길이만 더할까 하다, 이러면 for문이 두번 돌아 시간초과가 발생할 듯 싶어 하나의 for문에서 LIst의 add..
-
Lewis Capaldi - Someone You Loved [가사/해석]Music 2020. 2. 23. 21:28
Lewis Capaldi - Someone You Loved [가사 / 해석] I'm going under 난 가라앉고 있어요 And this time I fear there's no one to save me 이번에는 절 구해줄 이가 없어 두려워요 This all or nothing really got a way of driving me crazy 모두 얻거나 잃어버리는 이 상황이 나를 미치게 만드네요 I need somebody to heal 나를 치유해주고 Somebody to know 이해해주고 Somebody to have 옆에 있어주고 Somebody to hold 안아줄 사람이 필요해요 It's easy to say 말은 쉽지만 But it's never the same 그리 쉽지는 않죠 I..
-
[백준 10867번] 중복 빼고 정렬하기(Java 풀이)Algorithm/정렬(Sort) 2020. 2. 22. 12:12
백준알고리즘 10867번 : 중복 빼고 정렬하기 중복을 포함한 숫자를 Testcase만큼 찍어내고, 이 중에서 중복한 수는 빼고 정렬하는 문제이다. 받아올 수 있는 줄의 갯수는 최대 10만개인 반면, 수는 절댓값이 1000보다 작거나 같은 정수이기 때문에 받으면서 중복이 있으면 그때 그때 걸러주는 게 낫겠다고 생각했다. (다 받고 정렬 후 거르는것과 비교를 해봐야겠지만) 풀이 과정 1. ArrayList를 만들어놓고, Scanner로 값을 담도록한다. 2. 단, 담는 조건을 첨가한다. A. ArrayList에 있는 모든 값들을 불러와, 하나라도 동일한 값이 있으면 다음 숫자를 받는다. B. A조건에 걸리지 않은 경우, 숫자를 List에 추가한다. 3. 조건으로 걸러진 List를 정렬한 뒤, 출력한다. 소..
-
[백준 2822번] 점수 계산(Java 풀이)Algorithm/정렬(Sort) 2020. 2. 21. 21:57
백준알고리즘 2822번 : 점수 계산 8문제 중, 점수가 가장 높은 5개 문제의 점수만 합쳐서 출력하고 해당 문제들의 번호를 출력하는 문제이다. 각 점수만 주어지고, 순서는 주어지지 않기 때문에 점수와 순서를 field로 갖는 클래스를 생성하고, 해당 클래스가 Comparable 인터페이스를 implements(구현)하도록 한다. 클래스의 객체를 생성하고, instance 변수인 점수에는 Scanner로 받아오는 값을 담는다. instance 변수인 점수는 직접 담아준다. for문을 통해 점수를 받아오면서 총합을 구해놓고, 점수를 크기순으로 정렬한 뒤에 낮은 3개의 점수를 총합에서 뺴고 출력한다. 높은 점수의 순번을 다시 오름차순으로 정렬하여 출력한다. 소스 ▽ 더보기 import java.util.Ar..