n = int(input()) ## 숫자 입력받고 Tr = False ## bool타입 하나 정의해준다 for i in range(n): ## 최대로 큰 생성자는 숫자와 같으므로 숫자까지 반복 sum = i ## sum 에 i 를 넣고 i = str(i) ## i 는 문자열로 변경 for j in i: ## i 를 순회하면서 sum += int(j) ## 각 자리수를 sum 에 더해줌 if sum == n: ## 그 sum 값이 입력받은 숫자와 같다면 print(i) ## 그것이 생성자(답)이므로 출력 Tr = True ## 답이 나왔으면 Tr을 바꿔주고 break ## for문 중지 if Tr == False: ## Tr이 바뀌지 않고 for문이 끝나서 여기까지 왔으면 print(0) ## 생성자가 없..
n = int(input()) br = False for i in range((n//3) + 1): ## 3, 5 의 최댓값 까지 반복 for j in range((n//5) + 1): ## 5를 먼저 증가되게 만듬 if (3*i) + (5*j) == n: ## 딱 떨어지는 순간 print(i+j) ## 그것이 최소로 필요한 수 br = True ## 답이 나왔다면 br을 바꾸고 break ## 2중반복문 한개 빠져나가기 if br == True: ## br이 바뀌었다면 break ## 반복문 한개 더 빠져나가기(완전종료) if br == False: ## 답이 안나오고 반복문이 끝났다면(br불변) print(-1) ## -1 출력
문자열을 뒤집는다는 의미는 다음과 같이 Original 문자열의 마지막에서 처음 순서로 출력한다는 의미입니다. Original String: Hello, World! Reversed String: !dlroW ,olleH 이 글에서는 문자열을 뒤집는 방법을 소개합니다. 1. slice로 문자열 순서 뒤집기 2. reversed()로 문자열 순서 뒤집기 3. for loop로 문자열 순서 뒤집기 1. slice로 문자열 순서 뒤집기 slice를 이용하면 매우 쉽게 String을 뒤집을 수 있습니다. slice에서 각각의 항목은 [start:stop:step]를 의미합니다. string[::-1]처럼 반대 방향으로 리스트의 데이터를 자를 수 있습니다. string = 'Hello, World!' revers..
n = int(input()) # 주어지는 수 li = list(map(int, input().split())) # 리스트에 담는다 for i in li: # 리스트를 순회하며 count = 0 for j in range(1, i+1): # 1부터 본인수까지 나누며 if i % j == 0 : # 나머지가 0인 수의 개수가 count += 1 if count != 2: # 2개가 아니면(소수가 아니면) n -= 1 # n(주어진 수의 개수)에서 1을 뺀다. print(n) # n(소수의 개수)출력 n이 없어도 되지만 문제에서 주어졌으므로 사용하는 쪽으로 해결했다.
1 . 선언 조건 리스트는 숫자형, 문자열 등 모든 자료를 타입을 보존하여 가질 수 있습니다. (여러 가지 자료형 허용) 반면, 넘파이 어레이는 숫자형과 문자열이 섞이면 모두 문자열로 전환됩니다. (한 가지 자료형만 허용) import numpy as np a = [1, 3, 5, 'a', 'b'] # 1, 3, 5는 숫자형, 'a', 'b'는 문자열 b = np.array([1, 3, 5, 'a', 'b']) # '1', '3', '5', 'a', 'b'의 문자열로 전환 2차원 이상의 배열 구조에서 리스트는 내부 배열에서 원소 개수가 달라도 됩니다. 그러나, 넘파이 어레이는 내부 배열 내 원소 개수가 모두 같아야 합니다. a = [[1], [3, 5], [2, 4, 6]] # 문제 X b = np.ar..
h1, m1, s1 = map(int, input().split(':')) # 시분초를 나눈뒤 h2, m2, s2 = map(int, input().split(':')) t = h2*3600+m2*60+s2 - (h1*3600+m1*60+s1) # 초로 바꿔 계산후 뺀다 if t < 0: # 값이 음수라면 t += 60*60*24 # 24시간어치 초를 더해준다 h = t//3600 # 시간은 3600으로 나눈 몫이고 m = (t%3600)//60 # 분은 그 나머지를 60으로 나눈 몫이고 s = t%60 # 초는 그 나머지이다 print("%02d:%02d:%02d" % (h,m,s))
필수 명령어들 요약 1. ls - 현재 위치의 파일 목록 조회 2. cd - 디렉터리 이동 3. touch - 0바이트 파일 생성, 파일의 날짜와 시간을 수정 4. mkdir - 디렉터리 생성 5. cp - 파일 복사 6. mv - 파일 이동 7. rm - 파일 삭제 8. cat - 파일의 내용을 화면에 출력, 리다이렉션 기호('>')를 사용하여 새로운 파일 생성 9. redirection - 화면의 출력 결과를 파일로 저장 10. alias - 자주 사용하는 명령어들을 별명으로 정의하여 쉽게 사용할 수 있도록 설정 명령어 옵션과 설명 1. ls (List segments) : 현재 위치의 파일 목록 조회 ls -l : 파일의 상세정보 ls -a : 숨김 파일 표시 ls -t : 파일들을 생성시간순(제일..
삽입 명령 a 커서 뒤에 입력 A 라인 끝에 입력 i 커서 앞에 입력 I 라인시작 부분에 입력 o 커서 있는 라인 밑에 입력 O 커서가 있는 라인 위에 입력 커서 이동 명령 h 왼쪽으로 커서 한 칸 이동 H 화면의 처음으로 이동 L 오른쪽으로 한 칸 이동 L 화면 끝으로 이동 e 다음 단어의 마지막으로 이동 E 커서를 공백으로 구분된 다음 단어 끝으로 이동 b 한 단어 뒤로 이동 B 커서를 공백으로 구분된 이전 단어로 이동 w 커서를 한 단어 뒤로 이동 W 커서를 공백으로 구분된 다음 단어로 이동 k 커서를 한 라인 위로 이동 j 커서를 한 라인 아래로 이동 O 커서를 라인의 시작으로 이동 $ 커서를 라인의 끝으로 이동 Enter 커서를 다음 라인 시작으로 이동 - 커서를 전 라인의 시작으로 이동 Ctr..
■ 주피터 노트북 단축키 (빈도수 높은) (1) 셀 선택 모드 (Command Mode) 파란색은 셀 선택 상태입니다. (선택상태) [ESC] 또는 [Ctrl] + [m]를 눌러 셀이 아래와 같이 파란색이 된 상태(셀 선택 모드)에서 해당 단축키 누름 a : 위에 새로운 셀 추가 b : 아래에 새로운 셀 추가 c : 셀 복사하기 v : 셀 붙여넣기 x : 셀 잘라내기 dd : 셀 삭제하기 p : 셀 아래에 붙여넣기 o : 실행결과 열기/닫기 m : Markdown으로 변경 y : Code로 변경 Shift + m : 선택 셀과 아래 셀과 합치기 Ctrl + s 또는 s : 파일 저장 Enter : 선택 셀의 코드 입력 모드로 돌아가기 (2) 코드 입력 모드 (Edit Mode) 초록색은 코드 입력 가능 ..