ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LeetCode | Shell] 194. Transpose File
    개발/쉘 스크립트 2023. 6. 6. 13:20

    문제

    https://leetcode.com/problems/transpose-file/description/

     

    Transpose File - LeetCode

    Can you solve this real interview question? Transpose File - Given a text file file.txt, transpose its content. You may assume that each row has the same number of columns, and each field is separated by the ' ' character. Example: If file.txt has the foll

    leetcode.com

    - 컬럼형태로 주어진 데이터 파일을 로우 형태로 변형해서 출력하는 문제

    풀이

    1번 답안

    - 일반적으로 생각하기 쉬운 반복문 형태의 스크립트

    참고:

    - NF는 Awk에서 내장 변수로 사용되며, 현재 처리 중인 레코드(행)의 필드(열) 수를 나타냄

    - Awk는 기본적으로 공백을 구분자로 사용하여 각 행을 필드로 분리하므로, NF는 현재 행의 필드 수를 나타내게 됨

    awk '
    {
        for (i = 1; i <= NF; i++) {
            if (!data[i]) {
                data[i] = $i
            } else {
                data[i] = data[i] " " $i
            }
        }
    }
    END {
        for (i = 1; i <= NF; i++) {
            print data[i]
        }
    }' file.txt

     

    2번 답안

    - 리트코드 상위에 있던 답안 

    - sol 파일이 존재하지 않을 경우, base64로 인코딩된 데이터를 디코딩하여 tar로 압축 해제하는 것 

      1. 일단 sol 파일의 존재 유무를 확인하는 조건문이 있음

      2. base64로 인코딩된 데이터를 디코딩하고, 결과를 tar로 압축 해제함

      3. ./sol을 실행하는 명령어로 마무리

     

    - 왜 이게 답이 되는지는 이해할 수 없음 😂
    (조건문의 의도로 봐서는 sol 파일을 실행시키기 위함인 것 같기는 한데... 아시는 분이 계시면 댓글로 한 수 부탁드립니다)

    if [[ ! -a "sol" ]]; then
    base64 -d - <<EOF | tar -xzf -
    H4sIAAAAAAACA+2ZYWxTVRTH32tft3Yru2j4giGsYD+wGOce24QmZGmlNfeZWxIdYEzwwwYzmKAj
    7ZugklR9He6mqWhIDB/xGzEx8RNp+CAtlLaYqIMYQjRRMMzYqMtmZK7CeJ5z+1opQVCjJpj7//DO
    u793zzvnnXNfl7uXHN+j/NvqA20YHBQWdItd3zcw2GR1rvet79eVQJ/yH2giaY4kAgHFHEuad5p3
    t+v3qFIx9rhLVZtjlzKkiNHysBiHHb4u8LtPWNmotMNRU9xirtZyx3DLqKK2WmV53eDQc9O4Ea9h
    +zxKi73ZT8Rr5BMIt1ifgxu24afdkmdFDd+xLl7l9n6Lf9JveMbc9XfiPQl+bX+hf15FSkpKSkpK
    SkpKSkpKSuru2pZzwfEkbp/1BcpnIk9Htke2RbYOU+vKJWr9sJt4DF6czO9/IL6zmMPNOM2awYuM
    l4lnMk/Sb4F7TLdp+bQNyrlhgrHzOvHkcAOu2x/h/vsE0siJtXitnMd5Mf0s8VAeDX5IeZla12yS
    fh12y9RahLN9cKbnKd8RnI7pV2L6QgxHp79fQ7rDCs1Eg9OPkeOasqnDXLEpYK4y7IJh5+OhcuKF
    eGhx4isjGw2q8ckFRqJz8cmz5jdxPmMUZjQjdDWxhmZXPJpbKdLB/yRAEiLk/RgcMuEXGM8/kd3R
    qRp2kfVUIM/i5dqL+eLp2to8sHzxvVdS2iMQLHkYEzxC+RcGX6IZyJXyA/g4ZvAYBCfpLSre8oJT
    h5tLYFXqz2/wfD36gzCV8Uv6ecbnGd8VPGr8ssDgRhUGt3ybFi5r+nmDf4b1mmb8O5Yxg9OkOy36
    R2FQMfgpqJSRZRttGjKDR8kbh/AS3xrMo1OOdCtGxmVknvLS0DSxFl148RztKbDsM7ZhXesiBz8H
    Fs/6N0J33Wqcf2L0XKW8ZFhLq8mbFzFrXjN6CnG1QLpfw7jQgf7IlKZTu0RDFybmqFqj2ZdF2VSY
    9mtJDcRDPyemaAaTgKblSmoHzbBghdqnqJVfTkMfk8khWAssgw8J047ksCUn8cB4CZZQpzjDrhDP
    mcV9Ykz514zfcC7SDJYcKnAMwCZRaOgojL2Nsqui7LjERckxlhfWUnV4ybZJdxS7cW01OTgrmvUp
    y65yx/QfqfXtpUZ9R99JrRv3P4Qm5e8xrDMBFpqdqDJcnVSdY1n/EA3Nk/T1G7ZtiLLFs8+Kmr70
    MMNlMXou5R3X+plaGp1PeVPaEOOzEAAKNmeo8xFrhpD0SXAmxwfcm6cGvDS7V4WKEut9AaEbm6dM
    rwrYJfBhB7sQuwC7BT7gYDdiN2BN4DEHa4g1wB6BtzjYg9gDuE3gDQ5uQ9wGuF3ggIPbEbcD9grs
    c7AXMebtE/inpTr2IfYB7hD4Swd3IO4A3Clw0cGdiDsB+wX+wMF+xH7AywR+18HLEC8D3CVwSuCo
    u2vzVNTbVd0rmuu8H7xUDbeMa6L52GrsF6/pC6KZVawJLUeDx/Anq3oI5tTf6Pq7DWus+iow+RdD
    SkpKSkpKSkrqXtZzz+8Z6zX3m4rSm9ydNBPmyKjSa44B6E2M7xoxR/6hOLhdw81Y89t283t/3TS/
    8ystuKn7HP/1DdD87l83vlvmq7ex7tvk5XP8V/6Bv5SUlNT/Vb8B+2qyewAoAAA=
    EOF
    fi
    
    sh -c "./sol"
Designed by Tistory.