걸림돌 셀프 넘버를 찾아내는 알고리즘을 짜지 못했음 집합과 리스트에 대해 파악하는데 시간이 좀 걸림 ex) set(), add 등등 집합으로 만들어진 코드를 리스트로 다시 코딩하는데 기능 구현하기가 어려웠음 ex) 논셀프넘버 찾기, 변수 self_nums에 셀프넘버만 넣는 기능 등 코드 # 자연수를 natural_num에 넣고 논셀프넘버를 create_num에 넣음 natural_num = set(range(1,10001)) create_num = set() # create_num에 논셀프넘버들을 넣음 for i in range (1, 10001): for j in (str(i)): i += int(j) create_num.add(i) #self_num에 자연수에서 논셀프넘버를 뺀 숫자들(셀프넘버들)을 ..
걸림돌 : N 개의 줄에 N개의 명령을 입력 받을 때 N개의 명령 문자열을 어떻게 받아서 어떻게 하나하나 비교 해볼 것인가? → 맨 처음에 변수1에 명령어 한 개를 입력받고 후에 N-1번 반복하는 for문을 만들어 입력받게 만들고 한 루프에 변수2에 한 번 입력받고 변수1과 변수2의 문자열들을 비교하여 다른 문자가 들어있는 인덱스에 ?를 넣는다 그리고 그걸 N-1번 반복하는 것으로 해결 마지막 결과 출력 값들 사이에 띄어쓰기가 들어간 후 출력이 됨 → sep을 이용해서 띄어쓰기 없이 붙여서 출력하는 것으로 해결 코드 #명령어 입력받는 횟수 입력받기 N = int(input()) #명령어를 변수1에 입력받기 cmd = list(input()) #앞에서 한 번 입력 받았기 때문에 N-1번 입력받게끔 for문..
이 문제에서 고민했던 것 not enough values to unpack 이 오류를 해결하기 위해서는 명령어와 정수를 각각 다른 함수에 입력받으면 안됨 → 정수 입력이 없는 명령어를 실행 할 때는 오류가 생김 -> 이 문제는 cmd 라는 리스트로 명령어와 정수를 리스트로 저장하면 정수가 있을 때 없을 때 구분 없이 기능을 하게 되겠구나 깨달음 위 문제를 처음에는 다섯 개의 명령의 이름으로 각각 함수를 따로 정의하고 기능을 추가해서 할 생각이었음 -> 하지만 너무 돌아가는 느낌이 있어 그냥 if문과 elif문을 사용하여 명령어를 문자열로 입력받아 조건으로 입력받은 문자열과 명령의 이름과 같으면 그 기능을 구사하게 만들기로 결정함 -> but 알고리즘 스터디에서 def 등으로 각각 함수를 따로 정의하는 것..
조건 첫째 줄에 영어 단어 S를 입력받는다 단어 S의 각각의 알파벳에 대해 등장하는 위치를 공백으로 구분해서 출력한다 없는 단어일 경우에는 '-1'을 출력한다 코드 #S에 영어로 된 단어 문자열을 입력받는다 S = input() #alphabet에 알파벳 문자를 순서대로 저장해둔다 alphabet = 'abcdefghijklmnopqrstuvwxyz' #for문 i에 alphabet에 들어있는 문자를 순서대로 대입하면서 반복한다 for i in alphabet: #입력받은 단어 S안에 i에 대입 된 문자가 있다면 그 문자의 인덱스를 출력 if i in S: print(S.index(i), end=' ') #입력받은 단어 S안에 i에 대입 된 문자가 없다면 '-1' 출력 else: print(-1, end..
조건첫 번째 줄에 숫자의 자릿수를 입력받고 두 번째 줄에 숫자를 입력받는다입력받은 숫자의 각 자릿수의 합을 출력한다코드#숫자의 자릿수를 입력받음 num = input() #숫자를 입력받아서 자릿수를 각각 요소로 리스트에 저장함 numbers = list(map(int,input())) #리스트 요소의 합을 출력 print(sum(numbers))위 코드는 숫자 자릿수는 입력만 받고 입력받는 숫자는 각각의 자릿수 숫자들을 리스트에 저장 후 리스트 요소들의 합을 구하는 함수를 사용해서 출력하는 간단하게 만든 코드#숫자의 자릿수를 입력받음 n = int(input()) #숫자를 문자열로 입력받음 numbers = input() result = 0 #숫자의 자릿수 만큼 for문을 실행시킴 for i in ran..
코드#x에 문자 입력받기 x = input() #x에 입력받은 문자 ord()함수로 아스키 코드로 변환하여 출력 print(ord(x))알게된 점ord()함수를 사용하면 문자를 아스키 코드로 변환할 수 있다
조건첫 번째 줄에는 테스트 케이스의 개수를 입력받는다두 번째 줄 부터 문자열을 입력받고 문자열의 처음 문자와 맨 끝 문자를 출력한다코드#테스트 케이스의 개수를 입력받음 T = int(input()) #테스크 케이스 개수 만큼 for문으로 반복함 for _ in range (T): #문자열 str을 입력받음 str = input() #문자열의 첫 번째 문자와 맨 끝 문자를 # 인덱스 0과 인덱스 -1 (==맨 끝)로 접근해서 각각 다른 함수에 저장 first_char_str = str[0] last_char_str = str [-1] #각각 다른 함수에 저장한 문자들을 '+'를 이용해 띄어쓰기 없이 한 줄로 출력 print(first_char_str + last_char_str) - 위 코드는 내가 제출한..
조건첫째 줄에 단어 길이를 잴 단어(영어)를 입력받는다코드#sys.stdin.readline()을 사용하기 위해 불러옴 import sys #s에 길이를 잴 단어를 입력받는다 s = sys.stdin.readline() #입력받은 단어를 char_list에 리스트로 저장한다 char_list = list(s) #lenth함수에 문자열 길이에 -1한 값을 저장한다 #-> \n 값이 있기 때문에 -1을 해줘야함 lenth = len(s)-1 #lenth값 출력 print(lenth)