-
[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"
'개발 > 쉘 스크립트' 카테고리의 다른 글
[LeetCode | Shell] 192. Word Frequency (0) 2023.06.06 [LeetCode | Shell] 193. Valid Phone Numbers (0) 2023.06.06 [LeetCode | Shell] 195. Tenth Line (1) 2023.06.05 쉘 스크립트 기본 문법 정리 (0) 2023.06.04