본문 바로가기

백준(C++)35

[BOJ/C++]2110번_공유기 설치(★) https://www.acmicpc.net/problem/2110 ##문제 이해하기 ##코드 작성 전 알아야 할 개념 && 코드 논리 :1_ 첫번째 집을 공유기를 설치했다고, 가정 => 그 다음 순차탐색으로 집을 순회하면서, 다음 공유기를 설치할 집을 찾는 IDEAif (mid (자세한 설명은 밑의 노트)2_ (1_)과정의 집을 순회하면서, 공유기 설치 후 => 설치된 공유기 개수 vs 입력한 공유기를 설치해야할 개수(C) 비교=> 이분탐색3_★Upper_Bound 이분탐색 vs Basic 이분탐색 :어떤 값을 찾는 것이 아닌, 조건에 맞지만, 그 중 최대거리를 찾는 과정이기 때문에, Upper_Bound로 코드 구현해야한다.※참고 설명 :일반적인 이분 탐색 (Binary Search)일반적인 이분 탐색.. 2024. 7. 23.
[BOJ/C++]2805번_나무자르기 https://www.acmicpc.net/problem/2805##문제 풀기 전 알아야 할 개념 :1_ " 1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000" : 입력된 수의 범위를 보고 2가지를 떠올려야 한다.long long 의 자료형으로 변수 초기화 , (또는 unsigned int)저렇게 범위가 많다는 것 => log(N)의 시간 복잡도 알고리즘을 사용할 것이라는 습관을 들여야 한다.2_ 0 ~ 입력된 나무의 높이의 범위 사이에서 적절한 높이를 탐색(최적화 문제) 해야한다. => 이분탐색(or 이진 탐색)##문제 풀이의 논리 노트 :1_ 나무의 높이들 입력하면서, 최대 높이를 업데이트2_ 최대 높이부터 내리면서(순차 탐색 x , 이진 탐색 o), 문제 조건에 맞는지 검사하.. 2024. 7. 22.
[BOJ/C++]11656번_접미사 배열 https://www.acmicpc.net/problem/11656##문제 풀기 전 알아야 할 개념 :Iterator을 이용하여, String 객체의 원소를 조작하기 : erase()메소드erase()메소드 :ⓐ. String클래스의 인스턴스 메소드 => 호출법 : String 객체.erase()ⓑ. 매개변수 : iterator의 String 객체의 포인터 : (or 객체 포인터 2개를 넣으면, 범위만큼 조작 가능)ex_ String 객체인 word의  인덱스 4번째 원소를 지우기 => word.erase(word.begin() + 4);ⓒ. 반환값 : voidC++ 에서 sort()메소드 vs qsort()메소드 차이 :1_ Sort() ⓐ. 헤더파일 : ⓑ. 호환성과 성능 : C++ 컨테이너와 많이 .. 2024. 7. 21.
[BOJ/C++]10824_네 수 https://www.acmicpc.net/problem/10824##문제 풀기 전 알아야 할 개념 :1_ 입력된 문자열을 숫자 계산 하는 방법(알아두면, 요기나게 쓰여요!) :ex_ 문자열 : 1 2 3 4 값을 1_1) 입력된 그대로 숫자로 조립하기 :1_2) 역순으로 숫자 조립 하기 :2_ 문제 조건에서 자연수의 값의 범위 : (1 ≤ A, B, C, D ≤ 1,000,000)=> 따라서 자연수의 자료형이 int가 아닌 long long 로 해야한다.3_ A 와 B를 붙인 값 과 C와 D를 붙인 값 따로 처리법 : ' '공백으로 기준 나누기##코드 :  12345678910111213141516171819202122232425262728293031323334353637383940#include io.. 2024. 7. 20.