분류 전체보기 43

백준 문제풀이 : (17386) 선분 교차 1, 두 직선의 기울기로 문제 풀기 - C/C++

문제 : https://www.acmicpc.net/problem/17386 17386번: 선분 교차 1 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. 세 점이 일직선 위에 있는 경우는 없다. www.acmicpc.net 시간 제한 메모리 제한 난이도 알고리즘 분류 0.25초 512 MB Gold 3 기하학 / 선분 교차 판정 문제 시간 제한이 0.25초이므로 사실 상 계산 공식을 통해 한 번에 답을 도출하라는 뜻이다. 처음에는 풀이법이 금방 생각나서 이게 왜 골드 3 짜리 문제인지 의문이었지만, CCW 알고리즘을 사용하지 않고는 기울기를 구하는 과정에서 소수점 오차까지 고려해야하기 때문인 것 같았다. CCW 알고리즘을 사용..

알고리즘/백준 2023.12.13

React 18 + webpack5 + babel 로 리액트 프로젝트 설정 및 생성하기

웹 제작 프레임워크를 고민하다가 가장 많이 사용한다는 프레임워크 중 React 프레임워크를 선택해 공부해보기로 했다. 많이 알려져있는대로 React는 페이스북에서 만든 프레임워크이며, 페이스북에 사용된 React 컴포넌트는 무려 5만개를 넘어간다고 한다. 아직 공부하는 중이지만 React의 장점은 state라는 변수 하나로 html 요소를 편하게 변경하고, 컴포넌트 별로 개발 및 관리가 용이하다는 점에 있는 것 같다. state 변수를 변경하는 것 만으로 React는 전체 페이지 재접속 없이 해당 컴포넌트 영역만 자동으로 리렌더링 해준다. (렌더링이란 페이지를 다시 로드하는 동작을 뜻한다.) 독학을 하려는 중이고, 아직 유료 강의까지 결제할 마음은 없어서 웹 상에서 괜찮은 무료 강의를 찾아봤다. 그 중 ..

웹/React 2023.12.10

백준 문제풀이 : (2436) 공약수 - c/c++

문제 : https://www.acmicpc.net/problem/2436 2436번: 공약수 첫째 줄에 두 개의 자연수가 빈칸을 사이에 두고 주어진다. 첫 번째 수는 어떤 두 개의 자연수의 최대공약수이고, 두 번째 수는 그 자연수들의 최소공배수이다. 입력되는 두 자연수는 2 이상 100,0 www.acmicpc.net 시간 제한 메모리 제한 난이도 알고리즘 분류 1초 128 MB Gold 5 수학 / 브루트포스 문제 풀이 최대공약수(G)와 최소공배수(L)이 주어졌을 때, 역으로 두 수 a, b를 구해야하는 문제다. 또한, a, b의 쌍이 여러개일 경우 a+b의 값이 최소가 되는 쌍을 찾아야 한다. 다 재쳐두고 먼저 G과 L에 대한 공식과 규칙들을 정리해봤다. - G * L = a * b - a = G ..

알고리즘/백준 2023.12.07

백준 문제풀이 : (1614) 영식이의 손가락 - c/c++

문제 : https://www.acmicpc.net/problem/1614 1614번: 영식이의 손가락 1, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3, 4, 5, 4, 3 위와같이 세면 총 15를 셀 수 있다. 2번째 손가락을 3번 이용했으니 더 이상 사용할 수 없다. www.acmicpc.net 시간 제한 메모리 제한 난이도 알고리즘 분류 2초 128 MB Silver 3 수학 / 많은 조건 분기 문제 풀이 영식이는 엄지손가락->새끼손가락->엄지손가락 순서로 세며, 왼쪽 손을 사용하기 때문에 엄지 손가락이 1번, 새끼 손가락이 5번, 그리고 다시 엄지 손가락이 9번째, 그 후 다시 새끼 손가락이 13번째 카운트가 된다. 13번 손가락을 셀 동안, 엄지와 소지는 두 번씩만 세지는 것에 검지, ..

알고리즘/백준 2023.12.05

백준 문제풀이 : (2018) 수들의 합 5 - c/c++

문제 : https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net 시간 제한 메모리 제한 난이도 알고리즘 분류 2초 32 MB Silver 5 수학 / 두 포인터 문제 풀이 자연수 N의 범위가 1부터 10,000,000 까지이기 때문에, 연속된 자연수로 이루어진 집합의 수는 nx(n-1)/2 = 49,999,995,000,000 이며, o(n)의 값이 2초 안에 처리할 수 있는 연산량을 훌쩍 넘어간다. 따라서 반복을 줄일 수 있는 ..

알고리즘/백준 2023.11.30

SWEA (1928) Base64 Decoder - c/c++

문제 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PR4DKAG0DFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 시간 제한 메모리 제한 난이도 알고리즘 분류 30초 힙, 정적 : 256 MB / 스택 : 1MB D2 - 문제 풀이 간단한 인코딩-디코딩 문제이기 때문에 문제에서 설명한 절차의 반대 순서로 문자를 변환해나가면 된다. Base64 Encoding한 문자열을 다시 아스키코드 기반으로 디코딩 하는 절차는 다음과 같다. 1. 입력받은 문자열을 Base64 표에 대응하는 정수값으로 변환한 후, 다..

알고리즘/SW EA 2023.11.28

백준 문제풀이 : (10986) 나머지 합 - c/c++

문제 : https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 시간 제한 메모리 제한 난이도 알고리즘 분류 1초 256 MB Gold 3 수학 / 누적합 문제 풀이 누적합 알고리즘을 응용해서 푸는 문제다. 하지만 시간 제한이 1초이므로 단순히 누적합 배열만 가지고 계산하려고 하면 시간 초과를 뱉어낸다. 또한 입력받는 수 A의 범위가 0

알고리즘/백준 2023.11.28

SWEA (1225) [S/W 문제해결 기본] 7일차 - 암호생성기 - c/c++

문제 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14uWl6AF0CFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 시간 제한 메모리 제한 난이도 알고리즘 분류 10초 힙, 정적 : 256 MB / 스택 : 1MB D3 - 문제 풀이 SW EA의 문제는 전반적으로 시간 제한을 넉넉하게 주는 편이다. 때문에 백준 문제를 풀 때에 비해서는 편하게 고민했지만, 그래도 시간 초과와 메모리 문제는 항상 고민해야하므로 나름 시간을 줄일 수 있는 방향으로 풀었다. 우선 문제에서 주어진 예시를 공책에 다시 적으며 규칙..

알고리즘/SW EA 2023.11.24

백준 문제풀이 : (6064) 카잉 달력 - Python

문제 : https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net 시간 제한 메모리 제한 난이도 알고리즘 분류 2초 64 MB Silver 1 수학 / 정수론 문제 풀이 c++로 풀이했을 때는 조금 복잡한 규칙을 만들어서 풀이했었는데, 정답이 잘 나와 다시 고민하지 않고 넘어갔었다. 하지만 파이썬으로 같은 풀이법을 옮겼더니 곧장 시간 초과를 뿜어내더라... 그래서 풀이 과정을 다시한번 되짚어보며, 계산이나 반복을 줄일 수 있는 방법을 찾아봤다. 문제의 정답..

알고리즘/백준 2023.11.23

백준 문제풀이 : (1790) 수 이어 쓰기 2 - c/c++

문제 : https://www.acmicpc.net/problem/1790 1790번: 수 이어 쓰기 2 첫째 줄에 N(1 ≤ N ≤ 100,000,000)과, k(1 ≤ k ≤ 1,000,000,000)가 주어진다. N과 k 사이에는 공백이 하나 이상 있다. www.acmicpc.net 시간 제한 메모리 제한 난이도 알고리즘 분류 2초 64 MB Gold 5 수학 / 구현 문제 풀이 수가 십의 제곱 단위로 커지는 구간 마다 수와 숫자의 개수는 다음과 같다. 한 자릿수 범위 (1~9) 수 : 9개 / 숫자 : 9개 두 자릿수 범위 (10~99) 수 : 90개 / 숫자 : 180개 세 자릿수 범위 (100~999) 수 : 900개 / 숫자 : 2700개 이 규칙을 다음과 같은 공식으로 정리할 수 있다. 수..

알고리즘/백준 2023.11.21