BoBo World

[Programmers] #120922 - 종이 자르기 [Java][C++][Python]

문제 링크 1. 아이디어 종이 자르기를 최소 가위질로 하려면 가로로 먼저 쭉 자른 후 남은 종이를 자르거나, 세로로 쭉 자른 후 남은 종이를 자르면 된다. 가로의 길이를 M, 세로의 길이를 N이라고 하면, 가로로 먼저 쭉 자르면 N - 1번의 가위질이 필요하고 각 N개의 종이를 세로로 자르는데 N * (M - 1)번의 가위질이 필요하다. 세로...

[Programmers] #120921 - 문자열 밀기 [Java][C++][Python]

문제 링크 1. 아이디어 문자열 A와 B가 주어지며 A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 구하는 문제다. 문자열 밀기는 각 문자를 오른쪽으로 한 칸 밀고 마지막 문자를 맨 앞으로 이동시키므로 A와 B가 동일한지 판단하고 동일하지 않다면 문자열 밀기를 하는 과정을 다시 초기 A로 돌아올 때까지 반복하면 된다. 2. 복잡...

[LeetCode] #49 - Group Anagrams [Java][C++][Python]

문제 링크 1. 아이디어 애너그램 관계에 있는 문자열을 그룹핑해서 배열로 반환하는 문제로 해시맵을 활용하면 해결할 수 있다. 해시맵의 value에 애너그램 관계에 있는 문자열 그룹을, key에 해당 그룹의 문자열 중 하나를 사전순 정렬한 문자열로 두면 특정 문자열이 새로운 그룹을 만든다면 정렬 후 이를 key로 사용해 새로운 그룹을 저장하고,...