2024/07 82

[자료구조] 스택 - 키보드 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

[자료구조] 배열 vs 연결리스트

배열(Array) / 연결리스트(Linked list) 배열연결리스트크기고정동적주소연속불연속데이터 검색(참조)O(1)O(n)데이터 추가/삭제O(n)O(1)배열 (Array): 같은 타입의 변수들로 이루어진 집합으로, 연속공간에 값이 채워져 있는 형태.  'A', 'B', 'C', 'D', 'E' 라는 데이터가 있다. 이 데이터들을 배열로 저장해볼거다  먼저 연속적으로 붙어있는 상자를 구해준다. 데이터가 5개니까 상자도 5칸(= 배열은 선언할 때 크기가 미리 지정된다)  각 상자(데이터가 들어갈 주소)들에는 차례대로 번호가 부여되는데, 이 번호를 '인덱스' 라고 한다.  0부터 시작하기 때문에 인덱스는 초기값을 기준으로 주소가 떨어진 거리에 해당한다.ex) 첫번째 데이터는 인덱스 0, 두번째 데이터는 인덱..

[프로그래머스] #8 각도기 (한줄 if)

▶ 문제각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각, 180도는 평각으로 분류함. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수 만들기.예각 : 0 직각 : angle = 90둔각 : 90 평각 : angle = 180 ▶ 제한사항0 angle 은 정수입니다. ▶ 풀이def solution(angle): if 0 통과! 제한사항을 이용해서(angle은 어차피 0초과 180이하일테니)이렇게 한줄로 깔끔하게 줄여서 쓸수도 있다.def solution(angle): return 1 if angle

codekata 2024.07.15

[프로그래머스] #7 두 수의 나눗셈 (정수부분 반환)

▶ 문제정수 num1과 num2가 매개변수로 주어짐num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 solution 함수 만들기 ▶ 제한사항0 0   ▶ 풀이def solution(num1, num2): answer = num1 / num2 * 1000 return int(answer)통과!int 로 변환하면 소숫점은 버리고 정수부분만 빼내올 수 있다.새로 알게된 사실. 그리고 연산법칙을 이용해서 정수부분만 빼오는 방법도 있다.def solution(num1, num2): answer = (num1 / num2 * 1000) // 1 return answer이런식으로몫// 연산자로 굳이 int를 쓰지 않고도 정수부분만 반환 가능하다.내가 알고있는 ..

codekata 2024.07.15

[프로그래머스] #5 숫자 비교하기 (한줄 if)

▶ 문제정수 num1과 num2가 매개변수로 주어짐.두 수가 같으면 1, 다르면 -1을 return하도록 solution 함수 만들기. ▶ 제한사항0 ≤ num1 ≤ 10,0000 ≤ num2 ≤ 10,000  ▶ 풀이def solution(num1, num2): if num1 == num2: return 1 else: return -1통과! 알게된 사실if 문은 한줄로도 쓸 수가 있다def solution(num1, num2): return 1 if num1==num2 else -1이렇게 영어문장 쓰는 것처럼 간결하게 쓸수도 있다

codekata 2024.07.15

[프로그래머스] #4 나이 출력

▶ 문제2022년 기준 선생님의 나이 age 가 주어질 때, 선생님의 출생 연도를 return 하는 solution 함수 만들기. ▶ 제한사항0 나이는 태어난 연도에 1살이며 매년 1월 1일마다 1살씩 증가합니다. ▶ 풀이def solution(age): answer = 2022 - age + 1 return answer통과! 엄청 쉬운 계산인데 할려니까 조금 헷갈려서 종이에 몇개 예시로 써보고 했다. 나이       result1살       2022년생2살       2021년생21살     2002년생

codekata 2024.07.15