본문 바로가기

전체 글

(48)
[알고리즘 이론] 구현 문제 [이것이 코딩 테스트다, 나동빈] 책을 공부하고 정리한 글입니다. 🌀구현 문제 : 이 책에서는 완전 탐색과 시뮬레이션 유형을 구현 문제로 묶어서 다루고 있음. : 머리 속의 알고리즘을 프로그램으로 작성하기. ✅ 예제 : 상하좌우 여행가 A는 n * n 크기의 정사각형 공간에 있다. 여행가의 계획서에는 LRUD(왼, 오, 위, 아래)가 반복적으로 적혀있다. 정사각형을 벗어나는 움직임은 무시함. 최종 도착지의 좌표를 구하시오. (아래 방향 x축, 오른쪽 방향 y 축) 💡내 풀이 n = int(input()) plan = list(input().split()) x = 1 y = 1 for i in plan: if (i == 'R') and (y != n): y += 1 elif (i == 'L') and (y..
[알고리즘 이론] 그리디 알고리즘 Greedy!!! [이거이 코딩 테스트다, 나동빈] 책을 공부하고 정리한 글입니다. 🌀그리디 알고리즘 🌀 : 지금 당장 좋은 것만 고르기🥴 ✅ 예제 1) 거스름돈 N원을 거슬러 줘야함. 카운터에는 500, 100, 50, 10원짜리 동전이 무한히 있음. 거슬러줘야 할 동전의 최소 개수는? (N은 항상 10의 배수임) 나의 풀이~~~~ N = int(input()) num = 0 while 1: if N > 500: N = N - 500 num += 1 elif N > 100: N = N - 100 num += 1 elif N > 50: N = N - 50 num += 1 elif N > 10: N = N - 10 num += 1 else : break print(num) 실행 결과 답안예시를 보니 내 코드가 참 길어보인다..
파이썬 문법정리2 ⚡️ 튜플, 딕셔너리 1️⃣ 튜플 : 튜플은 항목의 값을 삭제하거나 변경하는 것이 불가능하다. ➰튜플 생성하기 >>> t1 = () >>> t2 = (1,) #요소가 한 개 일때는 콤마를 붙여줘야함 #안 붙일 경우 int형이 됨 >>> t3 = (1, 2, 3) >>> t4 = 1, 2, 3 >>> t5 = ('a', 'b', ('ab', 'cd')) ➰ 튜플 인덱싱, 슬라이싱 (리스트와 동일) >>> t = 1, 2, 3, 4, 5, 6, 7 >>> t[1:3] (2, 3) >>> t[:4] (1, 2, 3, 4) >>> t[-1] 7 ➰ 튜플 연산 >>> t = 1, 2, 3 >>> tt = 4, 5, 6 >>> t * 3 (1, 2, 3, 1, 2, 3, 1, 2, 3) >>> t + tt (1, 2, 3, 4, 5, ..
파이썬 문법 정리 1⚡️ 출력, 변수, 연산, 리스트 1️⃣ 출력하기 print("hello") 2️⃣ 변수 a = 10 #정수 b = 90.0 #소수 c = "hello world" #문자열 d = True #bool e = (1, 2, 3) #튜플 f = [1, 2, 3] #리스트 g = {'name':'jiyo', 'phone':'01012345678', 'birth':'0101'} #딕셔너리 h = 0o177 #팔진수 i = 0xABC #16진수 3️⃣ 연산자 >>> 1 + 1 2 >>> 1 - 2 -1 >>> 2 * 2 4 >>> 3 / 2 1.5 >>> 3 // 2 # 나눗셈 후 소수점 이하 버림 1 >>> 7 % 3 # 나머지 연산 1 >>> 2 ** 5 #거듭제곱 32 4️⃣ 리스트 ➰리스트 생성하기➰ a = list()#빈 리스트 생성 b ..
zsh 터미널 꾸미기💖 oh my zsh 테마 추천, 설치 방법 내가 쓰고 있는 테마는 af-magic!! 깔끔하고 색깔이 귀엽다 파이썬 가상환경일 때, 점선 왼쪽에 괄호로 표시된다. 많이 쓰는 테마는 agnoster인 것 같다. 설치 방법은 우선 oh-my-zsh 깔기!! https://github.com/ohmyzsh/ohmyzsh GitHub - ohmyzsh/ohmyzsh: 🙃 A delightful community-driven (with 2,000+ contributors) framework for managing your zsh config 🙃 A delightful community-driven (with 2,000+ contributors) framework for managing your zsh configuration. Includes 300+ o..
[libft] ft_atoi.c 구현 📌atoi ✔️ 함수 프로토타입 intatoi(const char *str); ✔️ 함수의 역할 : str을 int형으로 반환한다. ✔️함수 반환값 ✏️ 문자열을 정수로 바꾸어 리턴 👀추가 설명 👀 ➿맨 앞의 공백문자는 스킵함, 부호는 하나만 있어야함. 중간에 '0' ~ '9' 외의 문자가 있으면 멈춤. ➿atoi의 반환값은 (int)strtol(str, (char **)NULL, 10); 와 같다. --> long 범위에서 int형 범위를 벗어난 경우, 오버플로된 값을 그대로 리턴 --> long 범위를 벗어난 경우, 음수일 땐 0 양수일 땐 -1을 리턴함. (❗️맥에서는 long범위와 longlong의 범위가 같다.) ✔️구현 #include "libft.h" #include static unsig..
[libft] ft_memcpy, ft_memmove 구현 📌memcpy ✔️ 함수 프로토타입 void*memcpy(void *restrict dst, const void *restrict src, size_t n); ✔️ 함수의 역할 : 메모리영역 src로부터 n 바이트를 메모리 영역 dst에 복사한다. ✔️함수 반환값 ✏️ dst 👀추가 설명 👀 ➿ dst와 src의 메모리 공간이 겹쳐져있는 경우는 undefined behavior이다. (겹쳐져 있는 경우는 memmove()를 사용해야 한다.) ✔️구현 #include "libft.h" void*ft_memcpy(void *dst, const void *src, size_t n) { size_ti; i = 0; if (dst == 0 && src == 0) return (NULL); if (n == 0) ..
[libft] ft_memset, ft_bzero, ft_memchr 구현 📌memset ✔️ 함수 프로토타입 void*memset(void *b, int c, size_t len); ✔️ 함수의 역할 : c 값(unsigned char 로 변환됨)을 len 바이트 길이만큼 문자열 b에 쓴다. ✔️함수 반환값 ✏️memset 함수의 첫 번째 인자 ✔️구현 #include "libft.h" void*ft_memset(void *b, int c, size_t len) { size_ti; i = 0; while (i < len) { *(unsigned char *)(b + i) = (unsigned char)c; i++; } return (b); } 📌bzero ✔️ 함수 프로토타입 voidbzero(void *s, size_t n); ✔️ 함수의 역할 : 0 n바이트를 s에 쓴..