[HackerRank] Grid Challenge

곌로그·2023년 5월 10일
0

[python]코딩테스트

목록 보기
18/34
post-thumbnail

문제 링크


문제 요약

Greedy 문제이다.

Grid 형태로 문자열이 주어졌을 때, 우리는 row의 경우 알파벳 순서대로 재정렬을 한다. 정렬된 Grid의 row와 col이 전부 알파벳 순서라면 "YES"를 return 하고, 그렇지 않다면 "NO"를 return한다.


문제 풀이

#!/bin/python3

import math
import os
import random
import re
import sys


def gridChallenge(grid, n):
    sort_grid = []
    for i in grid:
        sort_row = sorted(i)
        row_length = len(sort_row)
        sort_grid.append(''.join(sort_row))

    for s in range(n-1):
        #print(s)
        for c in range(row_length):
            if sort_grid[s][c] > sort_grid[s+1][c]:

                return "NO"
          
    return "YES"

            
            

if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    t = int(input().strip())

    for t_itr in range(t):
        n = int(input().strip())

        grid = []

        for _ in range(n):
            grid_item = input()
            grid.append(grid_item)

        result = gridChallenge(grid, n)

        fptr.write(result + '\n')

    fptr.close()


📌 고려해야할 점

  • 테스트 케이스와 문제에서 이야기한 조건 사이 다른게 존재한다... ^^
  • 문자열을 정렬하려면 Sorted()를 이용해야한다는 점!

🙄 느낀 점

아니 문제와 테스트케이스가 달라서 20분 정도 헤맸다. 분명, 정사각형 그리드가 주어질 것이라고 명시했으면 테스트 케이스에서는 직사각형으로 줬다 ... 나쁜 사람들

0개의 댓글