본문 바로가기

전체 글

(83)
[BOJ 2869] 백준 달팽이는 올라가고 싶다 풀이 - c++ 사용언어 : C++ 문제풀이 * 하루에 이동한 최종 거리 (A-B)m * x일동안 이동한 최종 거리 (A-B)*x * x일동안 이동한 거리가 Vm보다 큰 최솟값 == 도착하는 데까지 걸리는 일수 (A-B)*x >= V * 이 때, 정상에 올라간 후에는 미끄러지지 않는다. 즉, 마지막날엔 밤을 보내지 않는다 (A-B)*(x-1)+A>=V X를 기준으로 식 정리하기 X>=((V-A)/(A-B))+1 (이때 정수인 X는 계산값과 같거나 큰 정수의 최솟값이 된다. ceil 함수 이용. V,A,B는 실수형으로 적용) 전체코드 #include #include using namespace std; double A, B, V; int result; int main() { cin >> A >> B >> V; result..
[BOJ 1193] 백준 분수찾기 풀이 - C++ 사용언어 : C++ 문제풀이 (1/1), (1/2,2/1), (3/1,2/2,1/3) , (1/4,2/3,3/2,4/1) ... 대각선을 기준으로 각 분수들은 분자 분모의 합이 동일하다. 1+1=2, 1+2=3, 2+1=3, 3+1=4, 2+2=4, 1+3=4, 그리고 대각선 별 각 분수들의 갯수는 하나씩 증가한다 (1/1 1개, 1/2 2/1 2개, 3/1 2/2 1/3 3개) * 지역변수 x는 (1)대각선 분수들의 갯수이면서 (2)분자분모의 합이 된다. (여기서 (1)과 (2)는 값이 1만큼 차이나는데 분수값을 출력할 때 cnt+1로 계산해준다) (1) 입력 값 x 순서 분수의 분자 분모 합이 얼마인지 계산하기 cin >> x; int cnt = 1; //갯수가 한개(1/1)부터 시작 while (x..
[BOJ 10816] 백준 숫자 카드 2 풀이 - C++ 사용언어 : C++ 1. 이진탐색, 2. 맵 문제풀이 * binary search(이진탐색) 사용 숫자카드 값을 오름차순으로 정렬 후 해당 value값의 최소index,최대index를 구해 둘의 차이를 구한다. 1. 숫자 카드 값 배열에 대입하고 오름차순으로 정렬 cin >> N; for (int i = 0; i > arr[i]; } int start; int end; int center; sort(arr, arr + N); 2. 최소 index, 최대 index 구하는 함수를 이용해 두 index의 차 구하기 int start; int end; int center; sort(arr, arr + N); //오름차순으로 정렬 cin >> M; for (int j = 0; j ..
[BOJ 1654] 백준 랜선 자르기 풀이 - C++ 사용언어 : C++ 문제풀이 * binary search(이진탐색) 사용 (1) for문으로 arr배열에 랜선길이 대입하기 (동시에 랜선 최대값 구하기) int max_num = 0; for (int i = 0; i > arr[i]; if (arr[i] > max_num) max_num = arr[i]; } (2) while문(이진탐색)으로 최대 랜선 길이 구하기 (N개와 비교) int max_length = 0; while (start max_length) max_length = center; } } 전체코드 #include using namespace std; #include int K, N; int arr[10000]; int main() { cin >> K >> N;..
dreamhack [Introduction of Webhacking] 정리 Introduction of Webhacking https://dreamhack.io/lecture/courses/6를 바탕으로 작성했습니다 Introduction of Webhacking 웹 서비스가 동작하는 원리와 웹 서비스를 하기 위해 필요한 기본적인 요소들에 대해 학습할 수 있습니다. dreamhack.io 1. 웹이란 무엇인가? 해킹 : 본래의 의도와는 다른 행위를 발생시키는 것. 따라서 설계 또는 운영의 약점을 찾아야 함. (해당 시스템에 대한 높은 이해도를 필요로 함) 따라서, 웹해킹을 하기 위해 웹에 대한 기본적인 이해가 필요 월드 와이드 웹(World Wide Web,WWW,W3) 웹 : HTTP를 이용해 정보를 공유하는 통신서비스 웹 서버(Web Server) : 서비스를 제공하는 대상..
[BOJ 1920] 백준 수 찾기 풀이 - C++ 사용언어 : C++ 문제풀이 * binary search(이진탐색) 사용 - 전역변수 int N, M; int tmp; int A[100000]; -main함수 int main() { ios::sync_with_stdio(false); cin.tie(0); // 위에 두개 작성해야 시간초과 안난다 //N만큼 A배열에 값 저장하기 cin >> N; for (int i = 0; i > A[i]; } //이진탐색을 사용하기 위해 오름차순으로 정렬 sort(A, A + N); //M만큼 값 존재유무 확인하기 cin >> M; for (int i = 0; i > tmp; cout > N; for (int i = 0; i >..
[BOJ 2331] 백준 반복 수열 풀이 - C++ 사용언어 : C++ 문제풀이 * 다음 값을 가진 index의 check값이 0이 아닐 때까지 while문 실행한다. while문을 실행할 때마다 cnt를 +1하고 해당 cnt값을 check배열 해당 index에 저장.(수열에 남는 수 갯수 출력해야 함) -다음 값 구하는 함수 현재 값이 0이 될 때까지 10으로 나눈 나머지 값을 다음 값에 저장-> 현재 값10으로 나누기 int next_num(int bnum) { int nnum = 0; //다음 값 while (bnum != 0) { //현재 값 nnum += pow(bnum % 10, P); bnum /= 10; } return nnum; } - 반복되는 수열 갯수 찾기 int next = next_num(A); //처음 값 설정해주기 while (..
[BOJ 2606] 백준 바이러스 풀이 - c++ 사용언어 : C++ 문제풀이 * main함수에서 인접리스트 만들고 1에서 시작하는 dfs 돌려주기. 노드 방문할 때마다 result(답)증가 - 전역변수 설정 int computer_num; //총 컴퓨터 갯수 int pair_num; // 연결된 쌍 갯수 int network[101][101] = { 0 }; //2차원 배열로 만든 인접리스트 bool visited[100] = { false }; //해당 컴퓨터가 방문됐는지 기록 저장 int result = 0; //답 (1) main함수에서 입력값들을 이용해 리스트만들기 (network[a][b], network[b][a] 둘 다 설정해줘야 함) cin >> computer_num; cin >> pair_num; for (int i = 0; i < ..