전체 글 32

[백준] 피보나치 비스무리한 수열

오늘의 학습 키워드메모이제이션, 시뮬레이션 오늘의 회고🌱 오늘의 문제피보나치 문제의 변형된 문제이다. 피보나치 문제가 특정 위치 n의 값에 대하여 n-1, n-2 연속된 두 값의 합으로 구해나갔다면, 이 문제는 n-1, n-3과 같이 한 칸을 띄운 두 값의 합으로 구하는 문제이다.이 외의 조건이 크게 달라지는 부분은 없어 기존의 피보나치 구하는 방식으로 구하면 크게 문제될 것이 없다. 🌱 나의 시도입력 값의 최대값이 116으로 크지 않아 복잡한 알고리즘을 사용하기 보다는 짧고 가독성 좋은 코드를 사용하는 것이 좋다는 판단을 했다. 동일한 연산을 반복하지 않으므로 재귀 함수가 불필요하며, 이전 연산 값을 저장해두고 사용할 수 있는 메모이제이션 정도면 충분하다. 현재 단계적으로 문제를 풀기 때문에 시간 ..

Daily/Coding Test 2025.04.02

[자료구조] 그래프(Graph)와 탐색(Search)

🌱 그래프 그래프는 노드와 간선으로 이루어진 자료 구조이다. 크게 노드와 엣지(간선)으로 구성되어 있다.그래프는 간선으로 연결된 노드들 간 이동할 수 있는데, 이렇게 간선으로 연결된 노드들을 인접하다(Adjacent)고 한다.  🌱 그래프 표현 방법그래프에서 인접한 노드들간의 관계를 나타내는 방법으로 크게 인접 행렬(Adjacency matrix)과 인접 리스트(adjacency list)가 있다.1. 인접 행렬인접 행렬은 단어 그대로 "행렬"의 형태로 인접한 노드 간의 관계를 나타낸 것을 의미한다.행의 노드와 열의 노드 간의 거리를 행렬값으로 확인할 수 있다. 따라서 인접한 노드 조회를 할 때 시간 측면에서 O(1)로 아주 빠르다.그러나 이 방식은 메모리 측면에서 비효율성을 야기할 수 있기에 조심해..

[자료구조] 스택(stack)과 큐(queue)

🌱 스택 (Stack)1. 기본 개념스택은 기본적으로 LIFO(Last In First Out), 혹은 선입후출 구조라고 한다. 즉, 나중에 들어간 것이 맨 처음 나온다. 다시 말 하면 처음 들어간 것이 맨 뒤에 나오는 구조이다. 동굴을 떠올리면 스택 구조를 쉽게 상상할 수 있다.2. 이상 상태스택은 고정된 크기를 갖는 자료구조이다. 따라서 고정된 크기에서 벗어나는 액션을 취할 때 두 가지 이상 상태를 가질 수 있다.1. 오버플로우(Overflow): 자료구조가 수용 가능한 범위를 가득 채운 상태해서, 초과하여 삽입 연산을 수행하려고 할 때 발생하는 현상2. 언더플로우(Underflow): 자료구조에 데이터가 들어 있지 않은 상태에서 삭제 연산을 수행하려고 할 때 발생하는 현상* 예전에는 위 두 용어가..

[문법] 영포자의 토익 박살내기 1일차 - 대명사

오늘 배운 것 🌱1. 인칭 대명사인칭 대명사는 나를 포함한 1인칭, 너를 포함한 2인칭, 그 외 3인칭으로 구성되어 있다.또한 주어로 사용할 수 있는 주격, 소유를 나타내는 소유격, 목적어로 사용할 수 있는 목적격, 이 외 소유 대명사와 재귀 대명사로 사용된다.주의할 점은 남성의 소유격과 소유 대명사가 'his'로 형태가 같으며, 여성의 소유격과 목적격이 'her'로 형태가 같다는 것이다. 2. 인칭대명사의 사용 위치1. 주격은 주어, 목적격은 목적어의 위치에 사용된다.2. 소유격은 명사의 앞에서 명사를 수식한다. 단, 명사를 수식하는 형용사 앞에서도 사용이 가능하다. 또한 명사를 수식하는 형용사를 부사가 수식하고 있다면, 소유격은 그 부사 앞에 위치한다.3. 소유 대명사는 '소유격+명사' 이므로 주어..

Daily/English 2025.04.01

[백준] 소수 구하기

문제 링크: https://www.acmicpc.net/problem/1929   오늘의 교훈: 입출력 범위를 잘 보자.... 소수 구하는 알고리즘은 처음 코딩 걸음마를 하던 시절부터 풀어왔다.그런데 오늘 문득 든 의문은 이것보다 더 효율적으로 푸는 방법은 없을지 궁금했다.우선 오늘 푼 방법 먼저 정리하고 효율적으로 풀 수 있는 방법이 있는지 추가로 찾아보자. 풀이import mathm, n = map(int, input().split())for x in range(m, n+1): isPrime = True if x != 1 else False for i in range(2, int(x**0.5)+1): if x % i == 0: isPrime = False if isPrim..

Daily/Coding Test 2025.03.31

[리트코드][정렬] Top K Freqent Element

오늘의 학습 키워드딕셔너리 정렬, Counter 클래스(Collections 모듈) 오늘의 회고2분기 취업을 목표로 매일 코딩 테스트 풀기를 도전하고 있다.P인간 타파개는 혼자서는 작심이틀이 분명할 것이기에 항해99에서 습관 만들기 프로그램인 99클럽에 지원하였다.99클럽은 매일 오늘의 코딩테스트 문제를 제공하고, LMS에 해당 문제를 풀었다는 인증을 함으로써 습관을 만들 수 있도록 도와준다. 오늘 1일차에는 아래와 같은 내용을 진행하였다.1. OT in 디스코드2. 보너스 문제 제공 (30분간 타임어택)3. 오늘의 문제 풀이 & TIL (개인이 각자 진행) 🌱 오늘의 문제보너스 문제는 리트 코드(Leet Code)의 347. Top K Freqent Element 문제를 풀었다.정수 배열 nums가 ..

Daily/Coding Test 2025.03.31

FAB (Fabrication Facility)

FAB이란 Fabrication Facility로, 디스플레이/반도체 생산 공정이 이루어지는 시설을 의미한다.아주 작은 먼지라도 제품의 불량의 원인이 되는 제품을 다루기 때문에, FAB는 온습도 등 공정 환경이 안정적으로 유지되는 것이 중요하다.일반적으로 이러한 FAB 내부는 청정도를 유지하는 '클린룸'이 갖추어져 있으며, 근로자들은 먼지와 정전기를 막아주는 방진복을 입고 근무한다. 사례1. 삼성 디스플레이 FABhttps://news.samsungdisplay.com/27595 [디스플레이 용어알기] 79편: 팹(FAB)FAB(팹)이란 'Fabrication Facility'의 준말로 디스플레이/반도체 생산 공정이 이루어지는 시설을 의미합니다. OLED, LCD와 같은 초미세공정이 필요한 디스플레이 패..

AMHS (Automated Material Handling System, 자동화 물류 시스템)

AMHS는 자동화 물류 시스템을 의미한다.제조 현장마다 물류를 자동으로 처리할 수 있도록 제어 솔루션, AMHS 컨트롤러, H/W를 구축 및 운영하는 작업이다. 필요 시 타사의 제어 컨트롤러 및 H/W와 연동이 필요할 수 있다. 솔루션에 포함되는 S/W는 최적 경로 탐색, 실시간 물류 경로 최적화 등이 있다.이는 스마트 팩토리 및 무인화와 관련된 내용으로, 관련 용어는 아래 게시글을 참고하자.스마트 팩토리 용어 모음 심화편: MCS? AGV와 AMR의 차이는? 핵심설비부터 시스템까지 전부 알아보기 사례1. 삼성 SDS 제조 물류 자동화 솔루션: Nexplant MCS삼성 SDS에서 제공하는 제조/유통 분야의 E2E(End-to-End) 물류 자동화 서비스이다.타사의 AMHS (SKT, AGV, OHT)와..

[알고리즘] 구현(Implementation)

정의: 넓게는 알고리즘을 소스 코드로 바꾸는 것을 의미한다. 좁게는 문제에서 제시하는 제약 조건들에 대해 문법 및 라이브러리를 활용하여 꼼꼼하게 풀어내는 것을 의미한다.대표 예시- 완전 탐색: 문제에서 나올 수 있는 모든 경우의 수에 대해 계산하는 문제 유형- 시뮬레이션: 문제를 해결하기 위하여 각 절차를 한 단계씩 순차적으로 해결해나가는 문제 유형주의사항: 입력 조건이 자세하게 명시되며 문제의 길이가 긴 편이다.참고: 파이썬은 C, C++, JAVA에 비해 난이도가 낮은 반면 속도가 느리다는 단점이 있다. 이를 개선하기 위해 코딩 테스트 시 개발 환경에 PyPy를 지원한다면 PyPy를 선택하자. (실행 속도가 더 빠름)

[알고리즘] 단순 무식한 그리디(Greedy) 알고리즘

정의: 매 시점에 가장 좋은 선택지를 고르는 방식으로, 현재의 선택이 미래에 미칠 영향을 고려하지 않는 알고리즘이다.* 욕심쟁이 알고리즘 혹은 탐욕법이라고도 불린다.필요 역량: 창의력 / 문제를 풀기 위한 아이디어를 떠올릴 수 있는 능력특이 사항: 문제에서 기준이 제시될 가능성이 높으며 정렬 알고리즘과 함께 사용되는 경우가 많다.주의 사항: 그리디 알고리즘을 적용한 해법이 정당한지 검토하는 과정 필요 (반례 탐색 등)

[개념] 복잡도(Complexity)

이미지 출처: https://www.scholarhat.com/tutorial/datastructures/complexity-analysis-of-data-structures-and-algorithms 정의: 알고리즘의 성능을 나타내는 척도종류: 시간 복잡도, 공간(메모리) 복잡도* 일반적으로 복잡도라고 하면 시간 복잡도를 의미한다.표기 방법: 빅오 표기법* 빅오(Big-O) 표기법이란, 구현한 알고리즘을 시간 혹은 메모리에 대한 함수로 나타낸 후, 그 함수의 상한만을 고려한 표기방식이다.주의 사항: 소스 코드를 정확히 분석하여 복잡도를 계산하여야 한다. 만약 내부적으로 함수를 호출한다면 내부 함수도 복잡도를 계산해주어야 한다.코딩 테스트 시 제한 기준 (일반적인 상황)- 시간 복잡도: 1초, O(N^3..

[K8S][CKA] Cyber Monday로 CKA 자격증 약 30만원 할인 받기! ($395 -> $198)

지난 번 포스팅에서 소개했던 CKA의 Cyber Monday 할인이 시작되었다.* 지난 포스팅 참고: https://developer-zoyh.tistory.com/2 [CKA] Cyber Monday를 통해 60% 할인 받기엔지니어링 분야를 공부하고 또 취업을 준비하면서, 가장 많이 보이는 키워드는 "쿠버네티스(Kubernetes)" 일 것이다.초심자가 처음 개념을 접할 때 가장 좋은 공부법은 자격증을 준비해보는 것이developer-zoyh.tistory.com   기간은 2024년 12월 2일 월요일부터 동년도 12월 10일 화요일까지, 총 9일간 진행된다.60%로 예상했으나 2024년 사이버 먼데이에서 CKA 자격증의 경우 50%를 받을 수 있다.   198달러라고 되어 있으나, 실제 결제 페이지..

[K8S][CKA] 시험 정보 및 시험 준비 방법 정리

1. CKA란CKA란 Certified Kubernetes Administrator로, 쿠버네티스 관리자 역량을 확인하는 시험이다.쿠버네티스 설치 및 운영을 잘 수행하는지 확인한다. https://www.cncf.io/training/certification/cka/ Certified Kubernetes Administrator (CKA)The Certified Kubernetes Administrator (CKA) program was created by the Cloud Native Computing Foundation (CNCF), in collaboration with The Linux Foundation, to help develop the Kubernetes ecosystem.www.cncf...

[K8S][CKA] Cyber Monday를 통해 60% 할인 받기

엔지니어링 분야를 공부하고 또 취업을 준비하면서, 가장 많이 보이는 키워드는 "쿠버네티스(Kubernetes)" 일 것이다.초심자가 처음 개념을 접할 때 가장 좋은 공부법은 자격증을 준비해보는 것이라고 생각하기에, 나는 CKA 자격증을 준비해보기로 마음을 먹었다. CKA 라는 자격증은 풀 네임으로 Certified Kubernetes Administrator, 즉 쿠버네티스 관리자의 역량을 확인하는 시험이다.쿠버네티스를 설치할 수 있는지, 쿠버네티스 환경에서 어플리케이션을 동작 시키거나 네트워크 환경을 구축할 수 있는 지 등에 대해 확인한다. 구체적인 시험에 대한 정보는 아래 CNCF 라는 사이트에서 확인할 수 있다.https://www.cncf.io/training/certification/cka/ C..

홀짝에 따라 다른 값 반환하기: 홀짝 판별, 제곱, 합 구하기

[문제 요약]입력으로 주어진 1 이상 100 이하의 정수 n에 대하여,n이 홀수일 때, n 이하의 양의 정수 중 모든 홀수의 합을 구하고,n이 짝수일 때, n 이하의 양의 정수 중 모든 짝수의 제곱의 합을 구하는 문제 [풀이 과정]이 문제를 해결하기 위해서는 아래 세 가지를 코드로 구현할 수 있어야 한다. 1. 홀수/짝수를 판별할 수 있는 조건문위키백과에 따르면 짝수라는 것은 2의 배수 혹은 2로 나누어 떨어지는 정수를 의미한다. 이를 Python 문법을 이용하여 구해보자.Python에서는 % 라는 연산자를 이용하면 나눈 후 나머지 값을 구할 수 있다.예를 들어 7 % 3 라는 식을 작성한다면, 7을 3으로 나누었을 때 나머지가 1이므로 결과는 1이 나올 것이다. 따라서 n이 짝수 즉, 2로 나누어 떨어..

Daily/Coding Test 2024.11.26
728x90