목록2026/01/16 (4)
cmod.ify
1) 시나리오 및 주요 기능입력 데이터: 사용자 계정 리스트와 해당 패스워드 리스트.유효성 검사: 인자값(계정, 비번)이 입력되지 않으면 사용법을 출력하고 종료함.중복 체크: /etc/passwd 파일을 조회하여 이미 존재하는 계정인지 확인 후 생성함.반복 처리: for 문을 사용하여 리스트 내의 모든 사용자를 순차적으로 생성함.2) 관련 핵심 명령어useradd: 새로운 사용자 계정 생성.passwd: 계정의 비밀번호 설정. 스크립트 내에서는 echo "비번" | passwd --stdin "계정" 형태나 표준 입력을 활용함.wc -l: 결과값의 라인 수를 카운트하여 존재 여부(0 또는 1)를 판단함.3) 스크립트 코드 작성 (sudo nano adduser-script.sh)#!/bin/bashif ..
1. 개요정의: Unix, Linux, POSIX(MacOS 포함) 환경에서 사용하는 명령어와 프로그래밍 요소(if, for 등)가 결합된 인터프리터 기반 스크립트 언어임.특징: 컴파일 과정 없이 한 줄씩 읽어 실행하며, 시스템 자동화 및 일괄 처리에 강력함.2. 주요 쉘 종류sh: 쉘 스크립트의 기본이 되는 본 쉘(Bourne Shell).bash: 리눅스 표준 쉘. 본 쉘 기반에 C쉘과 코온 쉘의 기능을 통합함.ksh: 유닉스에서 주로 사용되는 코온 쉘.csh / tcsh: C언어와 유사한 문법을 가진 쉘.zsh: bash, ksh, tcsh의 장점을 모아 개선한 확장 쉘. 최근 MacOS 기본 쉘로 채택됨.3. 기본 문법 및 실행생성 및 작성확장자는 .sh를 사용함.파일 첫 줄에 #!/bin/bas..
answer 로 매 로직마다 최댓값을 갱신했는데 틀렸대서 보니까n이 1일때가 적용이 안 됨그래서 단말노드의 최댓값만 구해서 출력 import sysinput = sys.stdin.readlineN = int(input())tree = []d = []for _ in range(N): li = list(map(int, input().strip().split())) tree.append(li)for i in range(1, N): for j in range(len(tree[i])): ln = len(tree[i]) - 1 # 왼쪽 if j == 0: tree[i][0] += tree[i - 1][0] # 오른쪽 ..
당연히 반복해서 곱하는거랑 math.pow 는 시간, 메모리 초과임 그래서 메모이제이션으로도 풀어봤는데 그것도 메모리 초과임 결국 젬민이의 도움을 받았다 홀수짝수 구분안하고 제출했더니 틀렸습니다 나와서 홀수 짝수 구분 함 짝수는 s(n//2) * s(n//2) 라서 함수 중복호출을 피하기 위해 변수에 넣어야 함홀수인 경우 짝수의 결과에 s(n%2) 한번만 더 호출해주면 됨 시간 아껴보겠다고 함수 밖에서 n//2로 호출했는데 생각해보면 홀수일 땐 또 무용지물이라 그냥 다시 n으로 호출함 마지막으로 95%쯤에서 틀렸습니다 라고 떠서 뭘까 했더니 A 자체가 C보다 큰 경우를 생각 못 했다 b 가 1일 때 A%C로 바꾸었더니 정답이라고 나왔다 import sysinput = sys.stdin.readlineA..