Skip to content

Conversation

@tabss2003
Copy link
Collaborator

@tabss2003 tabss2003 commented Oct 3, 2022

풀이

  • 패턴을 찾아내는게 관건인 문제인 것 같다.
  • (1) 처음부터 다르게 생긴 행은 스위츠를 어떻게 눌러도 같이 켜질 수 없다.
  • (2)행 별로 꺼져있는 램프(0)의 수를 구한다
  • (3) 꺼져있는 램프 수가 k보다 작거나 같으면 짝수인지 홀수인지 확인한다.
  • (4) 만약 k 짝수인데 꺼져있는 램프의 수가 홀수라면 행내의 모든 램프를 킬 수 없다
  • (5) K보다 작거나 같고 홀짝도 같다면 자신과 같은 행(패턴)이 몇개인지 찾는다

세가지 규칙
(1) 동일한 모양을 가진 행의 개수가 많을 수록 결과값이 커짐
(2) 해당행 0의 개수가 k보다 작거나 같아야함

  • 클 경우) 행의 전부 켜지는 경우가 없음
    (3) 해당 행 0의 개수와 k의 개수 홀수 짝수의 경우가 같아야함

리뷰 요청 사항

  • 더 많은 리뷰를 위해 자세히 적어주세요

느낀점 👍

  • 문제를 딱 읽을 때 큐브 돌리기가 생각나서 무작정 패턴을 찾았더니, 규칙에 대한 정리를 자세히 확인하지 않아 헤맸다. 문제 규칙에 대해 잘 정리해놔야겠다 배열을 묶어서 풀지에 대해 버벅거리는 게 있어서 자료구조에 대한 개념을 잘 정리해야겠다

@0takkk
Copy link
Collaborator

0takkk commented Oct 3, 2022

이번 문제에서는 행의 수가 50이라 작지만, 행의 개수가 많아졌을 때, 이미 본 행을 기록해서 다음에 똑같은 모양의 행이 나왔을 때, 그 행에 대해서는 이미 체크했기 때문에 보지 않고 넘어간다면 조금 더 빠를 수 있을 것 같습니다.

또한, 다음의 코드에서 j를 i+1 부터 시작하는 방법도 생각할 수 있을 것 같습니다.

for(int j=0;j<n;j++) {
if(str[i].equals(str[j])) {
onRow++;
}
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants