분류 전체보기 384

[백준 2607번] 비슷한 단어 - java

문제 설명 1. 첫 번째로 입력받은 단어에 대해, 두번째부터 마지막까지 단어를 비교한다. 2. 비교할 두 단어들의 알파뱃을 비교한다. 3. 하나를 '바꾸거나, 없애거나, 추가하거나, 그래도 두었을 때' 모든 알파뱃이 같으면 비슷한 단어이다. 4. 비교하여 비슷한 단어의 수를 구해 return하면 된다. 풀이 과정 1. 구현 자체는 간단하지만, 생각해야 하는 경우의 수가 많다. 2. 기본 가정은 두 단어 중 긴 쪽을 기준으로, 하나를 바꾸거나 없애거나 추가하거나 그대로 두어 비슷한 단어가 만들어지면 된다. 가정 1. 양쪽 단어의 길이가 차이가 난다면, 긴 쪽을 기준으로 생각하여야 한다. 2. 긴 쪽을 기준으로 위의 변환 과정을 거치려면 ( 긴 단어의 길이-1 )의 개수 만큼은 같은 단어여야 할 것이다. 3..

알고리즘 공부 2021.05.01

[프로그래머스] 완주하기 못한 선수 - java

문제 설명 1. participant로 전체 참가자의 이름이 주어진다. 2. completion에서 완주한 참가자의 이름이 주어진다. 3. 완주한 참가자의 숫자는 전체 참가자의 수보다 1이 적다. 즉 한명은 절대 완주하지 못한다. 4. 동명이인이 있을 수 있다(한명이 통과하여도 다른 사람이 통과하지 못할 수 있다) 풀이 과정 1. 전체 참가자와 완주한 참가자는 결국 한명의 참가자를 제외하고는 동일한 이름들이 들어가 있을 것이다. 2. 즉, 참여는 하였는데 완주를 못한 참가자를 찾으면 된다. 3. 이름이 아니라 참가번호로 생각해 본다면 참가자 : 1 2 3 4 5 6 7 완주자 : 1 2 3 5 6 7 이 경우, 4번 참가자는 완주하지 못한 것이다. 4. 그렇다면 두 배열을 정렬하고 처음부터 비교하면서, ..

알고리즘 공부 2021.05.01

[프로그래머스] 두 개 뽑아서 더하기 - java

문제 설명 정수 배열을 받아, 그 중 두 개의 수를 사용하여 만들 수 있는 수를 오름차순으로 return하는 문제이다. 풀이 과정 1. TreeSet은 값을 입력할 때 알아서 오름차순으로 배열해 주고, 중복을 제거해 준다. 2. 이 문제에서는 만들 수 있는 값을 모두 배열에 오름차순으로 담으라 하였으므로, 중복값은 버리고 오름차순으로 담을 수 있으면 된다. 3. 따라서 TreeSet을 사용하면 간단히 구현 가능할 것이다. 4. 두 개의 수를 더해서 가져오면 되므로 첫번째 수 ) 배열 처음부터 마지막 전까지 두번째 수 ) 처음 수 다음부터 끝까지 이렇게 해서 첫번째 수에 대해 구해진 모든 두번째 수를 treeset에 더하고, 이를 끝까지 진행하면 전체 값이 구해질 것이다. 코드

알고리즘 공부 2021.05.01

[프로그래머스] 크레인 인형뽑기 게임 - java

문제 설명 1. 인형을 크레인을 통해서 배열 안에서 가져오게 된다. 2. 크레인은 인형을 행이 아니라 열을 기준으로 뽑아오게 된다. 3. 즉, 위의 그림의 경우를 예를 들면 ( O이 인형이 있음, X는 없음 ) [ X X X X X ] [ X X O X O ] [ X O O X O ] [ O O O O O ] [ O O O O O ] 다음과 같이 나타날 것이고, 크레인은 위에서 아래 방향으로 인형을 뽑아올 것이다. 4. 인형이 없는 곳에서 크레인을 작동시키면 아무런 일도 일어나지 않는다. 5. 바구니는 모든 인형이 들어갈 만큼 큰 크기이며, 같은 인형이 들어가면 터져서 사라진다. 6. 터져서 사라지는 인형의 수를 return하면 된다. 풀이 과정 1. 크레인을 통해서 뽑아온 인형을 담는 통은 Stack으..

알고리즘 공부 2021.05.01