전체 글(151)
-
해시(Hash) 알고리즘 쉽게 이해하기
자세한 내용은 영상으로 확인하세요! :) 프로그래밍을 배우다 보면 많은 분들이 해시(Hash) 알고리즘에 대해 질문하고 헷갈려합니다. 그만큼 자주 나오는 개념이지만 쉽게 이해하기 어려운 부분도 있습니다. 오늘은 코딩 테스트를 준비하는 분들이 꼭 알아야 할 해시 개념에 대해 정리해 보겠습니다. 해시(Hash)란 무엇인가?해시는 키(Key)와 값(Value) 형태를 갖는 하나의 자료 구조입니다. 예를 들어, 전화번호부를 생각해봅시다. 우리가 친구의 전화번호를 찾기 위해 이름을 입력하면 해당 친구의 전화번호가 나옵니다. 여기서 이름이 키(Key)이고, 전화번호가 값(Value)입니다. 해시가 등장하기 전에는 배열(Array)이라는 자료 구조만 사용했습니다. 배열은 오직 정수로만 접근할 수 있기 때문에, 문자열..
2024.06.20 -
동적 계획법(DP) 알고리즘: 10분 만에 이해하기 (정수 삼각형 문제풀이)
자세한 내용은 영상으로 확인하세요! :) 프로그래밍을 배우면서 동적 계획법(Dynamic Programming, DP)에 대해 들어보셨을 겁니다. DP는 알고리즘 문제 해결에 매우 유용한 접근 방식입니다. 오늘은 정수 삼각형 문제를 예시로 들어 DP 알고리즘을 10분 만에 이해할 수 있도록 설명해 드리겠습니다. 동적 계획법(DP)이란?동적 계획법은 복잡한 문제를 더 간단한 하위 문제로 나누어 해결하는 방법입니다. 이는 하위 문제들의 결과를 저장하고, 이를 바탕으로 전체 문제를 해결하는 방식입니다. DP는 중복 계산을 피하고, 효율적으로 문제를 해결할 수 있게 합니다. 다이나믹 프로그래밍의 필요성다이나믹 프로그래밍은 수많은 경우의 수를 모두 고려해야 하는 문제의 수행 시간을 단축하기 위해 고안된 알고리즘입..
2024.06.20 -
아주 작은 습관의 힘 (Atomic Habits, 제임스 클리어 James Clear) - 간단 정리 및 Action Items
Introduction 목표보다 목표를 이루기 위한 시스템이 중요하다. 어떤 목표를 이루겠다는 의지를 발휘하기보다, 의지를 발휘하지 않아도 저절로 습관대로 행동할 수 밖에 없는 삶의 시스템을 만들자. 쉽고 작은 시스템들을 계속 쌓으면 복리로 늘어나고, 쉬운 시스템을 조금씩 개선하여 효과적이게 만드는 것은 어렵지 않다. 시스템을 잘 만드는 것은 단순히 좋은 것을 소유하기 위함이 아니라, 내가 원하는 좋은 사람이 되기 위함이다. 그래서 나의 정체성을 정의하는 것이 가장 중요하다. 나는 어떤 사람인지 스스로 정의하고, 작은 습관들을 반복하여 그런 사람임을 스스로에게 증명하고, 선순환을 반복한다 습관의 정의 정기적으로 직면하는 문제와 스트레스를 해결하는 일련의 자동화된 해결책 우리를 둘러싼 환경에서 되풀이되는 ..
2024.03.31 -
백준 Brute Force(완전탐색) 입문 문제 추천 (브론즈 등급)
1. 브론즈 등급 Brute Force(완전탐색) 문제 추천! 왜 브론즈 등급인가요? Brute Force(완전탐색) 유형으로 분류된 문제 중 가장 쉬운 등급이 브론즈입니다. 가장 기본적인 구현 능력을 확인하는 유형인만큼 이 유형을 정확하게 풀 수 있도록 기본 준비가 철저하게 되어 있어야 합니다. 문제를 선정한 기준은 어떻게 되나요? 1,000명 이상이 풀어본 완전탐색 문제를, 풀어본 사람의 수를 기준으로 정렬했습니다. 그렇게 나온 문제들 중 가장 좋다고 판단된 39개를 아래에 정리했습니다. 이 문제들을 다 풀어봐야 할까요? 저는 모든 문제를 다 풀려는 생각은 비효율적이라고 생각합니다. 그래서 제가 추천드리는 39개도 전부 풀어볼 필요는 없고 브론즈 등급의 문제를 수월하게 풀 수 있다고 판단될 때까지만 ..
2023.05.04 -
[백준 1157] 단어 공부 (브론즈 1) 문제 풀이- 자바 Java 문자열
0. 자세한 설명은 YouTube 영상으로 1. 문자열 풀이 import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws IOException { // 0. 입력 및 초기화 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String str = br.readLine().toUpperCase(); // 1. 알파벳별 counting int[] count = new int[26];..
2023.02.04 -
[백준 11720] 숫자의 합 (브론즈 4) 문제 풀이- 파이썬 python
0. 자세한 설명은 YouTube 영상으로 1. 범용적 풀이 # ver 1 : 범용적 풀이 # 0. 입력 및 초기화 N = int(input()) arr = input() # 1. arr을 정수로 변환하여 누적 answer = 0 for i in range(len(arr)): answer += int(arr[i]) # 2. 출력 print(answer) 2. 파이써닉 풀이 # ver 2 : Pythonic 풀이 input() print(sum(map(int,input())))
2023.02.02