본문 바로가기

전체 글

팩토리얼 # 내 풀이def solution(n): i = 0 while n>i: i += 1 n = n/i return i i! 팩토리얼을 거꾸로(나누어) 진행하였다.생각해보니, 곱하면서 했어도 되는데 괜히 더 어렵게 푼 것 같다.   # GPT 풀이def solution(n): i, fact = 1, 1 while fact * (i + 1) 팩토리얼 연산처럼, 곱하기를 이용하여 이해하는데 더 쉽다. 더보기
진료 순서 정하기 # 내 풀이def solution(emergency): answer = [] for i in emergency: lt = 1 for j in emergency: if i모든 수를 비교하여, 비교하는 숫자가 비교되어지는 숫자보다 작으면 1을 더하는 방식을 사용하였다.   # 부족한 점인덱스를 이용항 방법이 있을까 고민하였지만, 해당 부분의 지식이 부족하여 포기하였다.인덱스(.index())를 호출하면 리스트를 처음부터 끝까지 탐색한다. → 비효율적, 다른 방법 모색   # GPT 풀이def solution(emergency): rank = {num: i + 1 for i, num in enumerate(sorted(emergency, revers.. 더보기
A로 B 만들기 # 내 풀이def solution(before, after): alist = list(after) for a in before: if a in alist: alist.remove(a) return 1 if alist == [] else 0list(after) : list로 형 변환 → 문자열의 각 문자가 list의 각 요소가 된다.if a in alsit : alist 안에 a가 있다면 True, 없다면 Falsealist.remove(a) : alist에서 a의 값을 삭제시켜준다.return 1 if alist == [] else 0 : 삼항 연산자로 True 1, False 0이 반환 # 헷갈렸던 부분str에 사용할 수 있는 메서드와 list에 사용할 .. 더보기
k의 개수 # 내 풀이def solution(i, j, k): answer = 0 for num in range(i, j+1): for a in str(num): if str(k) == a: answer += 1 return answer   # GPT 풀이def solution(i, j, k): return sum(str(num).count(str(k)) for num in range(i, j + 1))num 문자열에 k 문자가 중첩되지 않고 등장하는 횟수를 돌려준다.   # sum(iterable, /, start=0) :start 및 iterable의 항목들을 왼쪽에서 오른쪽으로 합하고 합계를 돌려준다. ite.. 더보기
2차원으로 만들기 # 내 풀이def solution(num_list, n): answer = [] for i in range(0, len(num_list), n): answer.append(num_list[i:i+n]) return answerrange(start, stop, step)start : 시작 숫자 (생략하면 기본값 0)stop : 끝 숫자 (ex. 11이면 -> 인덱스 10까지)step : 증가/감소 간격 (생략하면 기본값 1)리스트 슬라이싱을 사용하여 서브리스트를 추출한 후, answer 리스트에 추가   # GPT 풀이_1def solution(num_list, n): return [num_list[i:i+n] for i in range(0, len(num_.. 더보기
모스부호 # 내 풀이def solution(letter): answer = [] morse = { '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f', '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l', '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r', '...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x', '-.--':'y','--..':'z' } letter = letter.split(" ") for word in lett.. 더보기
합성수 찾기 # 내 풀이def solution(n): answer = 0 count = 0 for a in range(1, n+1): for b in range(1, a+1): if a%b == 0: count +=1 if count>=3: answer += 1 break count = 0 return answer바깥 for 문 : n 이하의 숫자 중 합성수를 찾기 위한 for문안쪽 for 문 : 각 숫자가 합성수인지 판별을 위한 for문합성수 : 약수의 갯수가 3개 이상인 수약수 : 어떤 수를 나누었을 때 나누어떨어지는 수, 모든 수는.. 더보기
중복된 문자 제거 # 내 풀이def solution(my_string): answer = '' for word in my_string: if word not in answer: answer += word return answerif word not in answer : answer 안에 word가 없을 경우, 조건이 True이다.  # GPT 풀이def solution(my_string): return "".join(dict.fromkeys(my_string))dict.fromkeys(my_string) : 입력 문자열의 문자들을 키로 갖는 dict 생성 (순서 유지 & 중복 제거)" ".join(...) : 딕셔너리의 키들을 문자열로 결합하여 반환  #.. 더보기