2025/01/31 3

[leetcode - 6. Zigzag Conversion] java

문제 설명1. 문자열이 주어진다.2. 지그재그 이동할 숫자가 주어진다.3. 지그재그 하고 문자열 변경하면 된다.풀이 과정 - 지그재그보다는 위아래? 라고 생각하면 쉽다.P A H NA P L S I I GY I R1. 보면 만들어지는 순서가 1 2 3 2 1 2 3 2 1 2 3 ... 이렇게 된다.2. 그러면 Queue 배열을 만들어서 q1(PAHN) q2(APLSIIG) q3(YIR) 이렇게 두고 합쳐주면 바로 풀린다.3. 위아래 슉 슈슉 슉코드class Solution { public String convert(String s, int numRows) { // 위의 경우에는 지그재그가 애초에 안나온다. if(numRows == 1 || numRows..

알고리즘 공부 2025.01.31

[백준 22866번] 탑 보기 - java

문제 설명1. 건물의 개수 N이 주어진다.2. 건물의 높이가 N개 주어진다.3. 각 건물은 자신의 높이보다 높은 건물들을 볼 수 있다.4. 보고있는 방향으로는 앞에 있는 건물보다 높은 건물을만 볼 수 있다.5. 오른쪽, 왼쪽 기준 볼 수 있는 모든 건물의 숫자랑 가장 가까운 건물 위치를 한줄씩 출력하면 된다.풀이 과정1. 구현2. Stack을 사용해 주면 된다. 투포인터 비슷한가 싶었는데 전혀 아니었다.3. 왼->오, 오->왼 하면서 Stack에 점점 높이가 낮아지면서 건물들을 저장한다.4. 그러면서 현재 건물보다 높은것들만 있으면 그게 size, 그 중 가장 가까운 위치를 확인해주면 된다.5. 모노토닉 스택에 대해서 알고 있으면 쉬울 수 있지만.. 나는 알고 있는데도 떠올리는데 시간이 오래 걸렸다.코드..

알고리즘 공부 2025.01.31

[leetcode - 68. Text Justification] java

문제 설명1. 단어들의 배열이랑, 최대 너비 maxWidth가 주어진다.2. maxWidth만큼 단어들을 배치하고 각 단어 사이에는 space가 최소 하나는 있어야 한다.3. 마지막 문장을 제외하고 나머지 문장들은 space가 균등하게 배치되어 문장을 완성해야 하고 그게 안되면 왼쪽의 space가 더 많으면 된다.4. 마지막 문장은 단어 사이에 space는 하나만 있고 마지막 단어로부터 끝까지 싹다 space로 채운다.풀이 과정 - 솔직히 얘는 왜 하드인지 잘 모르겠다. 약간 모르면 맞아야하는 문제는 아닌 것 같고 좀 귀찮지만 열심히 생각하면 되는 느낌. 다만 한번 꼬이면 답 없을 것 같기는 하다.1. 빡구현 + 약간의 그리디?2. 결국 지금까지의 단어를 가지고 문장을 만들어낼 수 있는지를 파악하면 되는..

알고리즘 공부 2025.01.31