전체 글 139

[자료구조] Linked List 클래스 정의

스쿼드 숙제! 연결리스트 클래스를 정의하는 예제 코드 해석해보기연결리스트 덕질한다는 기분으로 한줄한줄 주석 작성했다.class Node: # Node 클래스를 만들어보겠습니다. def __init__(self, data): # 초기화. 클래스를 인스턴스화 해서 객체를 생성할 수 있음. data를 인자로 받아오기. self.data = data # 노드가 저장할 데이터 self.next = None # 다음 노드를 가리키는 참조, 초기값은 No..

[Python 미니세션] 최소값의 인덱스 구하기

▶  문제최소값의 인덱스를 구하는 함수 만들기!시간복잡도 빅오 생각해보기# [23, 20, 73, 98, 11, 4, 288]# [33, 423, 32, 435, 235, 7, 56] ▶ 제한사항nums의 길이 3 ≤ n ≤ 100,000배열의 nums 원소는 정수배열의 원소는 중복된 값이 없다 ▶ 풀이def minimum_value(nums): # 함수정의(숫자리스트 받기) min_index = 0 # 인덱스 받을 변수선언, 초기값 0 for i in range(1, len(nums)): # 1부터 ~ 길이까지 i에 하나씩 대입 if nums[min_index] > nums[i]: # nums..

python 2024.07.17

[프로그래머스] #14 약수의 합 (MB, ms 성능확인)

▶ 문제정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수 만들기  ▶ 제한사항n은 0 이상 3000 이하인 정수 ▶ 풀이정수 n을 1부터 자기 자신까지로 하나씩 돌아가면서 나눠준 다음, 그 중에서 나머지가 0일 경우에만 변수 answer 에다가 하나씩 더해주면 끝!def solution(n): answer = 0 for i in range(1,n): if n % i == 0: answer += i return answer # 틀림..틀림 근데 이번엔 오류코드가 뜨는 것도 아니고 정상 작동하는데 그냥 틀렸다.ㅠ킹받는 이모티콘 어 근데 결과를 읽어보니까 나의 (틀린)결과값에 뭔가 규칙이 있다.정답보다 n 만큼 작은 숫자가 나온다는 것! (28-..

codekata 2024.07.17

[프로그래머스] #13 자릿수 더하기 (iterable)

▶ 문제자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 함수 만들기.ex) N = 123 이면 1 + 2 + 3 = 6 을 return 한다.  ▶ 제한사항N의 범위 : 100,000,000 이하의 자연수 ▶ 풀이def solution(n): answer = 0 # 숫자변수, 초기값=0 for i in n: # n을 돌면서 answer += i # 하나씩 더하기 return answer # TypeError: 'int' object is not iterableㅠ 오답,...숫자형 'int' 객체는 반복할 수가 없다. iterable을 여기서 보네!!! 수업중에 들었던거다.각 자료형은 class로 지정되어 ..

codekata 2024.07.17

[프로그래머스] #12 평균 구하기

▶ 문제정수를 담고 있는 배열 arr의 평균값을 return하는 함수 solution 만들기 ▶ 제한사항arr은 길이 1 이상, 100 이하인 배열arr의 원소는 -10,000 이상 10,000 이하인 정수 ▶ 풀이def solution(arr): return sum(arr)/len(arr) sum(arr) : 배열 arr 내 요소들의 합을 구해주는 함수len(arr) : 배열 arr의 길이(요소들의 갯수)를 구해주는 함수 제한사항에 배열 arr의 길이가 1 이상이라는 말이 있어서 고려 안했는데,만약 배열 arr의 길이가 0일 경우에는 Zero division Error 가 생겨버린다.def solution(arr): if len(arr) == 0: # 분모가 0일경우 ..

codekata 2024.07.17

[프로그래머스] #11 짝수와 홀수 (if_bool)

▶ 문제정수 num이 짝수인 경우 "Even"을 반환하고, 홀수인 경우 "Odd"를 반환하는 함수 solution 만들기 ▶ 제한 조건num은 int 범위의 정수0은 짝수 ▶ 풀이def solution(num): if num % 2 == 0: return "Even" else: return "Odd"2로 나눈 나머지를 이용해서 풀기! 쉽다 여기서if문의 결과값이 '존재한다' 면 True 이므로 return 값이 반환되고,if문의 결과값이 '없다(0)' 면 False 이므로 if문이 실행되지 않는다. 그점을 이용하면굳이 == 0 을 사용하지 않고 다음과 같이 간략하게 표현할 수도 있다!def solution(num): if num % 2: # ==..

codekata 2024.07.17

[자료구조] 스택 Stack

스택 (Stack): 후입선출의 자료구조 중 하나이다.LIFO (Last In First Out) : 마지막에 들어온 데이터가 제일 먼저 나감FILO ( First In Last Out) : 첨에 들어온 데이터가 제일 늦게 나감둘 다 똑같은 말이고 스택의 특징이다.  스택은 프링글스다! 바닥이 막혀있고, 데이터를 하나씩 위로 쌓아가는 구조다.그래서 처음에 집어넣은 데이터는 가장 아래에 깔려있기 때문에, 데이터를 다시 꺼낼 때 맨 마지막에 나가게 된다.반대로 젤 마지막에 집어넣은 데이터는 가장 위에 올려져 있기 때문에, 다시 꺼낼 때 맨 먼저 나가게 된다.  처음에 스택에 데이터가 들어있지 않고 비어있는 상태이면isEmpty 는 True이고,스택의 길이는 0이다.  push() 함수를 통해 스택에 데이터를..

[자료구조] 스택 - 키보드 Backspace / 괄호문법검사기

스쿼드 숙제! 키보드 Backspace 기능 구현하기input_string = ‘123//45/6789///’/를 만나면 앞의 값을 삭제해라맨앞에 /를 만나면 어떻게 처리할지 생각해보기answer = '146'열심히 생각해서 만든 코드def backspace_string(input_string): # 함수정의(문자열받기) stack = [] # 변수선언 stack = 빈리스트 for i in input_string: # 문자열 돌면서 각요소 i에 할당 if i == '/': # i가 /인 경우 : if stack != []: # [stack]이..

[프로그래머스] #9 짝수의 합

▶ 문제정수 n이 주어질 때, n 이하의 짝수를 모두 더한 값을 return 하도록 solution 함수 만들기.  ▶ 제한사항0  ▶ 풀이def solution(n): if n % 2 == 0: return (n/2) * (n/2 + 1) else: return ((n-1)/2) * ((n-1)/2 + 1)통과!나는 n이 짝수일 때와 홀수일 때를 나눈 다음에등차수열의 합을 이용해서 n 이하의 짝수합을 구했다. 근데range(), sum() 함수로 등차수열 합 계산을 더 직관적으로 할 수 있다def solution(n): return sum(range(2, n + 1, 2))2부터 n까지의 숫자들을 2칸씩 점프해서 더하는 방법....멋지다

codekata 2024.07.16