본문 바로가기

Tech/Coding51

백준18005🐨Even or Odd? https://www.acmicpc.net/problem/18005문제의 주요 조건을 살펴보자.picked n consecutive positive integers between 1 and 1018 guess if their sum is even or oddIf the sum must be even, write 2.If the sum must be odd, write 1.If the sum could be even or could be odd, write 0.The single line of input contains a single integer n (1 ≤ n ≤ 109). 일련의 $n$개 수의 합이 홀수가 되거나 짝수가 되는 것은홀수로 시작하는지 짝수로 시작하는지가 영향을 줄 것이다.홀수로 시작하는.. 2024. 8. 6.
🚧Intro2Algo🐨22장.기본 그래프 알고리즘 (01)그래프의 표현 $$G = (V, E)$$의미G (Graph): 그래프 자체, 정점들과 그 정점들을 연결하는 간선들의 집합.V (Vertices): 정점 집합. Vertex의 복수형으로, 그래프의 각 노드 또는 점.E (Edges): 간선 집합. 정점들을 연결하는 선.$G = (V, E)$는 "그래프 G는 정점들의 집합 V와 간선들의 집합 E로 구성된다"는 것을 수학적으로 표현한 것.그래프 $G = (V, E)$를 표현하기 위해서는 두 가지 표준 방법이 있음.1. 인접 리스트의 집합- 작은 밀도($|E|가|V|^2$보다 훨씬 작음) 그래프에 대해 효율적(Sparse Graph $|E| \ll |V|^2$ 조건을 만족)2. 인접 행렬두 방법 모두 무방향 그래프에 적용할 수 있다.무방향 그래프 정점5개 간선 7개인접 리스트.. 2024. 8. 6.
파이썬🐨더욱 더 로우레벨한 입출력 import osarr = list(map(int, os.read(0, os.fstat(0).st_size).split()))is_hacker = any((((i // 2) + 1) * 100)  제시된 코드는 os.read와 os.fstat를 사용하여 표준 입력으로부터 데이터를 읽고 처리하는 방식으로 작성된 코드이다. 이 코드의 동작 방식과 sys.stdin, open(0), input()과의 차이점을 자세히 설명하겠다.코드 분석import os# 표준 입력으로부터 데이터를 읽어온다arr = list(map(int, os.read(0, os.fstat(0).st_size).split()))# 조건에 따라 'hacker'인지 아닌지 판별is_hacker = any((((i // 2) + 1) * 100).. 2024. 7. 31.
백준3015🐨오아시스 재결합.py 백준 3015번 “오아시스 재결합” 문제는 스택을 이용하여 각 사람이 볼 수 있는 다른 사람의 쌍을 구하는 문제이다. 아래에 주어진 코드를 바탕으로 문제 풀이를 설명한다:n, *nums = map(int,open(0).read().split())stack = []result = 0for i in range(n): count = 1 while stack and stack[-1][0] 코드 설명초기화 및 입력 처리:n과 nums에 입력 데이터를 받아오고, stack과 result를 초기화한다.스택을 이용한 탐색:각 사람의 키를 nums에서 하나씩 순서대로 처리한다. 현재 사람의 키 nums[i]를 기준으로, 스택에 쌓인 이전 사람들 중 nums[i]보다 작거나 같은 키를 가진 사람들을 제거한다. .. 2024. 7. 30.
백준17298🐨오큰수.py .c + 백준17299🐨오등큰수.py https://redcubes.tistory.com/124 🐨BOJ#6549 히스토그램에서 가장 큰 직사각형] 모노톤 스택(#1725히스토그램)히스토그램에서 가장 큰 직사각형 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 54258 14782 9717 26.945% 문제 히스토그램은 직사각형 여러 개가 아래쪽으로 정렬되어 있는 도형이redcubes.tistory.com 오큰수 (NGE: Next Greater Element)오큰수: 현재 숫자 오른쪽에 위치하면서 현재 숫자보다 큰 수 중 가장 왼쪽에 있는 수.예시: 숫자 배열이 [9, 5, 4, 8]일 때 각 숫자의 오큰수는 다음과 같다:9: 오른쪽에 더 큰 수가 없으므로 -15: 오른쪽에 있는 8이 오큰수4: 오른쪽에 있는.. 2024. 7. 28.
백준11320🐨삼각 무늬 - 1 .C https://www.acmicpc.net/problem/11320 #include #include int main() { int t; scanf("%d", &t); int *ab = (int *)malloc(t  코드 설명헤더 파일 포함#include #include 표준 입출력 함수와 동적 메모리 할당 함수를 사용하기 위해 stdio.h와 stdlib.h를 포함한다.메인 함수int main() {모든 C 프로그램의 시작점인 main 함수이다.변수 선언 및 입력 int t; scanf("%d", &t);테스트 케이스의 수를 저장할 변수 t를 선언하고 표준 입력을 통해 그 값을 읽어온다.동적 메모리 할당 int *ab = (int *)malloc(t 입력된 수를 저.. 2024. 7. 27.
백준2293🐨동전 1 https://www.acmicpc.net/problem/2293 아래 동영상의 도움으로 문제를 풀었습니다! https://www.youtube.com/watch?v=LBOQikSpfNg1, 2, 5 로 10 만들기 0123456789101111111111112112233445565112234567810$dp[i][j]$ $i$번째 동전 추가시 j원을 만드는 경우의 수$$ $dp[i][j] = dp[i-1][j] +  dp[i][j-coin]$$dp[0] =10원을 만드는 경우의 수는 1 (아무것도 안 쓴다.)for coin in lst:    for j in range(coin,k+1):        dp[j] += dp[j-coin]def calculate_budget(coin_type_count, .. 2024. 7. 21.
백준4158🐨CD - 집념의 이터레이션 feat. map은 메모리를 먹는다. https://www.acmicpc.net/problem/4158 테스트 케이스가 여러개인데 하나라고 착각하고 이상하게 짰습니다.(문제 잘 안 읽는다고 아이들에게 주의 주는데... 반성합니다.)n,m,*nums = map(int,open(0).read().split())print(len(set(nums[:m])&set(nums[m:-2])))그래서 예전에 성공한 코드를 보았습니다.from sys import stdini = 0data = stdin.readlines()while True: m, n = map(int, data[i].split()) if m == 0 and n == 0: break else: i+=1 print(len(set(data[i.. 2024. 7. 18.
백준20361🐨일우는 야바위꾼.py _,x,k,*shupples = open(0).read().split()k=int(k)for i in range(0,k 2024. 7. 18.
AtCoder🐨Beginner Contest 362 - C. Sum = 0 L_i와  R_i 범위에서 X_i를 선택해서 수열을 만들고 합을 0으로 만드는 문제다.처음엔 만들수 있나? 만 물어보는 줄 알았는데.. 그래서 쉽다고 생각했다만들 수 있으려면 L의 합들과 R의 합들 범위에 0이 있어야 한다.그런데 실제 조건을 만족하는 수열 X를 구해야 했다.L의 합으로 X를 정해두고 그리디하게 0이 될 때 까지 최대한 더해주면 된다고 생각했다.n, *lr = map(int, open(0).read().split())sum_l, sum_r = 0, 0res = []diff = []for i in range(0, n정말 잘 풀었는데 50여개 케이스 중 3개가 통과하지 않는 거다...느낌상 경과의 원소가 하나뿐인 경우가 아닌가 해서 계속 예외처리를 하다가 풀지 못했다.에디토리얼을 보고 나랑 .. 2024. 7. 14.
C언어 고급] 13🚀변수의 영역과 데이터 공유 목차 변수의 사용 영역 지역변수 = 자동 변수 - 함수 내 사용. auto (=생략 가능). local variable은 storage class (변수를 사용 범위와 존재 기간에 따라 나눈 것) 중 하나. 지역변수의 특징 다른 함수에서 사용 못함 이름이 같아도 선언된 함수가 다르면 각각 독립된 저장 공간을 가짐 장점 메모리 효율성 디버깅에 유리 블록 안에서 사용하는 지역 변수 특정 블록 안에 변수를 선언하면 범위가 블록 내부로 제한. 블록이 중첩된 경우 사용 가능한 변수가 둘 이상이면 가장 가까운 블록에 선언된 변수를 사용. (안팎에 다 있으면 안의 것을 사용.) #include void assign10(void); void assign20(void); int a; // 전역 변수 선언 int main.. 2024. 4. 4.
C언어 고급] 12🚀문자열 목차 문자열과 포인터 - 컴파일 과정에서 문자열은 첫 번째 문자의 주소로 바뀜. = 배열을 출력하는 것과 같은 과정을 거침. 문자열 상수 구현 방법 - 문자열의 크기는 일정하지 않아서 char 배열로 보관, 문자열 상수가 있던 곳에는 배열의 위치 값 사용. - 주소로 접근해서 문자열을 바꾸면 안 됨. 컴파일은 되어도 운영체제가 상수를 읽기 전용 메모리 공간에 저장하므로 운영체제에 따라 강제종료할 수 있음. char 포인터로 문자열 사용 - 문자열은 결국 주소 = char포인터에 대입 사용 가능. 첫 주소만 저장, 포인터 연산으로 전체 문자열 사용 가능. 같은 문자열을 여러 번 사용하면 컴파일러가 하나의 문자열만 저장하고 주소를 공유하도록 번역함. = 최적화 = 컴파일러 종류에 따라 다름. 같은 문자열을 .. 2024. 3. 31.