[프로그래머스] 왼쪽 오른쪽

이준영·2026년 1월 11일

어제 오늘 풀었던 것 중에서 가장 어려웠던 문제 정리

왼쪽 오른쪽

문제 소개

문제 소개
  • "l"과 "r" 중 먼저 발견 된 문자에 따라 "l"이면 왼쪽 배열을 잘라서 리턴, "r"이면 오른쪽 배열을 잘라서 리턴 하는 문제이다.

나의 문제 풀이

  • 이 문제가 어렵다고 생각된 건 경우의 수와 인덱스 번호를 정확하게 판단하기 힘들었기 때문이다.

  • 경우의 수를 정리하면

  1. "l"과 "r"이 둘다 있는 경우
  2. "l"만 있는 경우
  3. "r"만 있는 경우
  4. 둘 다 없는 경우
  • 이렇게 나타낼 수 있다.

  • 이 중, 1번의 경우는 어떤 문자열이 먼저 왔는지 판단도 해야 한다.

  • 내가 해당 문제를 접했을 때, Array.Copy를 사용해서 해결하려고 했는데, 이 메서드를 사용하기 위해서는 인덱스 시작 번호와 길이를 구해야한다.

  • 그래서 열심히 수 계산을 해야 했다.

나의 문제 풀이
  • Array.IndexOf() 메서드를 사용해서 문자 "l"과 "r"의 위치를 구하고 없는 경우에는 -1을 리턴하므로 이를 이용했다.

  • 이후 모든 경우의 수를 if문으로 판단하는 메서드를 작성하였다.

  • 사실 이런 코드를 조금 싫어하는 경향이 있는데, Linq문법과 자료구조를 사용하지 않고 문제를 푸는 방법이 이정도 밖에 생각나지 않았다.

다른 사람의 풀이

나는 게임 프로그래머를 목표로 하고 있기 때문에 가장 최적화되는 코드를 작성하려고 노력하곤 있지만, 그래도 Linq문법이 신기하긴 해서 다른 사람의 풀이를 보는 편이다.

다른 사람의 풀이1
  • Linq을 사용한 풀이다. 확실히 가독성이 좋다.
다른 사람의 풀이2
  • 자료구조를 사용한 풀이다. 만약 나도 자료구조를 사용했으면 비슷하게 풀었을 것 같다.
profile
게임 개발자가 되기 위해서 공부하는 중입니다.

0개의 댓글