전체 글 139

[자료구조] 배열 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

[프로그래머스] #2 두수의 곱

▶ 문제정수 num1, num2가 매개변수로 주어짐.num1과 num2를 곱한 값을 return하도록 solution 함수 만들기.  ▶ 제한사항0 ≤ num1 ≤ 1000 ≤ num2 ≤ 100 ▶ 풀이def solution(num1, num2): if 0 통과! 아 근데 팀원분이 '제한사항'은 코드에 안넣어두 된다고 알려주셨다.입력으로 주어지는 값이 제한사항 범위 내의 값이라는 뜻이기 때문에,굳이 if 조건문으로 범위를 확인할 필요가 없다구 하셨다.감사해요! 다시풀기def solution(num1, num2): return num1 * num2통과!

codekata 2024.07.15