2022.01 [C++] 백준 10250 : ACM 호텔 오늘의 키포인트 무조건 낮은층, 1호실부터 찬다. 세로로 ||||| 이런식으로 왼쪽부터 나는 이중 for문을 사용했지만 수학적으로 접근하는게 더 좋아보인다. 왼쪽부터 차는 성질때문에 층수로 나눈 나머지가 층수가 되고, 층수로 나눴을 때의 몫이 호수가 된다. 왜 이렇게 수학적으로 안풀고 그냥 구현만 바로 해버리는지... 나쁜 버릇이다. 고쳐야만.... 알고리즘cpp2022.01백준2022.01 [C++] 백준 10815 : 숫자 카드 오늘의 키포인트 이진 탐색을 STL을 써서 구현해보았다. 훨씬 깔끔하고 간단해서 좋다. 를 참고하여 알고리즘 공부를 진행중인데, 해당 문제에서 무엇을 알고 가면 좋을지를 알려주셔서 좋다. 이렇게 binary_search 를 활용해서 깔끔하게 문제를 풀 수 있었다. 굿.... cpp알고리즘백준이진 탐색2022.012022.01 [C++] 백준 10773 : 제로 오늘의 키포인트 기본적인 스택 문제였다. 계속 스택에 값을 넣고 0이 들어온다면 pop시키면 된다. 마지막에 모든 수를 꺼내어 sum에 더해준 후 값을 출력해주면 된다. STL을 사용했다. 훨씬 간단하게 구현할 수 있었으며 왜 사람들이 C++을 알고리즘 풀이에 좋다고 하는지 깨달을 수 있었다.... 스택cpp알고리즘백준2022.012022.01 [C++] 백준 10816 : 숫자 카드 2 오늘의 키포인트 처음으로 lower_bound, upper_bound STL과 vector를 사용해보았다. 아직 미숙해서 인터넷을 열심히 찾아보았다. 다음에 보지 않고 풀어보기 필수. vector를 sort 할 때는 시작과 끝을 v.begin(), v.end()를 사용한다. upper_bound : binary search로 해당 숫자가 끝나는 위치 반환 (주어진 값보다 크거나 같으면서 제일... 정렬cpp2022.01백준알고리즘2022.01 [C++] 백준 2231 : 분해합 총 4번의 시도 끝에 맞춘 문제. 풀리지 않을 때는 코드를 보기보다 반례를 생각해보고, 정말 모르겠으면 질문 검색란에 있는 질문에서 반례를 찾아보고 입력을 해보는 편이다. 2의 생성자는 1이다. 생성자가 없으면 0을 출력시킨다. 86의 생성자는 78이 아니라 0이다. 78 + 8 = 86 이 되어 값을 78로 출력하였지만 78 + 8 + 7 을 계산해야한다.... 브루트포스 알고리즘cpp2022.01백준알고리즘2022.01 [C++] 백준 2108 : 통계학 최빈값에서 STL의 upper_bound와 lower_bound를 사용해보려 애쓰다가 다른 방식으로 틀어 풀게 된 문제. 최빈값을 찾을 때는 index에 해당 개수를 세는 것이 제일 효율적인 것 같다. 크기가 너무 많지 않은 경우에는!... 알고리즘cpp2022.01백준2022.01 [C++] 백준 10828 : 스택 오늘의 키포인트 c++은 stack 라이브러리를 가지고 잇다. 그걸 쓰면 바로바로 해결 완료... 알고리즘2022.01백준cpp2022.01 [C++] 백준 1934 : 최소공배수 오늘의 키포인트 B의 배수가 처음으로 A로 나누어지는 순간(나머지 = 0) 그 수가 최소 공배수 이다.... 알고리즘2022.01백준cpp2022.01 [C++] 백준 1246 : 온라인 판매 오늘의 키포인트 c++ 내림차순 정렬법 : 1인당 1 달걀이기에 내림차순으로 정렬하고 인덱스(사람 수) * 인덱스 값(달걀 값) 을 구하면 된다. 인덱스가 곧 사람 수 이기때문에, 인덱스가 N 을 넘지 않게 한다면 달걀 전체의 개수를 제한할 수 있다.... 그리디 알고리즘cpp2022.01백준알고리즘2022.01 [C++] 백준 1932 : 정수 삼각형 오늘의 키포인트 파스칼의 삼각형을 이용한 문제. 문제와 굉장히 비슷하다. 0부터 배열을 시작하면 0 - 1 이 인덱스의 범위를 벗어나기에 1부터 인덱스를 사용하도록 하였다. 위에서 아래로가 아니라 아래서 위로 생각하자. 합산값은 윗줄의 최대값과 자신의 값을 더한 것과 같다. 점화식... 다이나믹 프로그래밍cpp2022.01백준알고리즘2022.01 [C++] 백준 11721 : 열 개씩 끊어 출력하기 오늘의 키포인트 str을 10개씩 잘라서 치환할 생각을 처음에 했는데 굉장히 비효율적이다. 그냥 10의 배수일 때 \n을 삽입함으로써 간단히 해결할 수 있다.... 알고리즘2022.01백준cpp2022.01 [C++] 백준 1065 : 한수 오늘의 키포인트 이 문제는 한수의 개수를 구하는 문제 100 미만인 수는 2자리 수이기 때문에 무조건 한수이다.... 알고리즘2022.01백준cpp2022.01 [C++] 백준 1920 : 수 찾기 오늘의 키포인트 시간 초과 에러 정렬시킨 후 이진탐색(중위순회)를 이용해서 탐색 시간을 줄였다. std::binary_search 를 사용해 볼 수도 있을 것 같다.... cpp2022.01백준알고리즘이진 탐색2022.01 [C++] 백준 2448 : 별 찍기 - 11 오늘의 키포인트 첫 골드 문제. 복습 필요. 너무너무 안풀려서 인터넷을 많이 참고하였다. 그냥 별을 찍는것이 아니라 모두 배열에 넣는 것이 핵심. 별의 시작점을 이용한다. 삼각형을 모은 것들이 되풀이 되므로 재귀함수를 호출해야한다.... 알고리즘2022.01백준cpp2022.01 [C++] 백준 1929 : 소수 구하기 오늘의 키포인트 에라토스테네스의 체는 배열을 이용하여 소수를 구하는 알고리즘이다. 소수 판별 범위까지 배열을 생성하고 인덱스에 해당하는 값을 넣어 초기화해준다. 2부터 순회하면서 만약 배열의 값이 0 (지워진 상태)이 아닌 경우 소수로 보고 해당 수의 배수를 모두 지운다(배수이면 소수가 아니다)... 에라토스테네스의 체알고리즘cpp백준2022.012022.01
[C++] 백준 10250 : ACM 호텔 오늘의 키포인트 무조건 낮은층, 1호실부터 찬다. 세로로 ||||| 이런식으로 왼쪽부터 나는 이중 for문을 사용했지만 수학적으로 접근하는게 더 좋아보인다. 왼쪽부터 차는 성질때문에 층수로 나눈 나머지가 층수가 되고, 층수로 나눴을 때의 몫이 호수가 된다. 왜 이렇게 수학적으로 안풀고 그냥 구현만 바로 해버리는지... 나쁜 버릇이다. 고쳐야만.... 알고리즘cpp2022.01백준2022.01 [C++] 백준 10815 : 숫자 카드 오늘의 키포인트 이진 탐색을 STL을 써서 구현해보았다. 훨씬 깔끔하고 간단해서 좋다. 를 참고하여 알고리즘 공부를 진행중인데, 해당 문제에서 무엇을 알고 가면 좋을지를 알려주셔서 좋다. 이렇게 binary_search 를 활용해서 깔끔하게 문제를 풀 수 있었다. 굿.... cpp알고리즘백준이진 탐색2022.012022.01 [C++] 백준 10773 : 제로 오늘의 키포인트 기본적인 스택 문제였다. 계속 스택에 값을 넣고 0이 들어온다면 pop시키면 된다. 마지막에 모든 수를 꺼내어 sum에 더해준 후 값을 출력해주면 된다. STL을 사용했다. 훨씬 간단하게 구현할 수 있었으며 왜 사람들이 C++을 알고리즘 풀이에 좋다고 하는지 깨달을 수 있었다.... 스택cpp알고리즘백준2022.012022.01 [C++] 백준 10816 : 숫자 카드 2 오늘의 키포인트 처음으로 lower_bound, upper_bound STL과 vector를 사용해보았다. 아직 미숙해서 인터넷을 열심히 찾아보았다. 다음에 보지 않고 풀어보기 필수. vector를 sort 할 때는 시작과 끝을 v.begin(), v.end()를 사용한다. upper_bound : binary search로 해당 숫자가 끝나는 위치 반환 (주어진 값보다 크거나 같으면서 제일... 정렬cpp2022.01백준알고리즘2022.01 [C++] 백준 2231 : 분해합 총 4번의 시도 끝에 맞춘 문제. 풀리지 않을 때는 코드를 보기보다 반례를 생각해보고, 정말 모르겠으면 질문 검색란에 있는 질문에서 반례를 찾아보고 입력을 해보는 편이다. 2의 생성자는 1이다. 생성자가 없으면 0을 출력시킨다. 86의 생성자는 78이 아니라 0이다. 78 + 8 = 86 이 되어 값을 78로 출력하였지만 78 + 8 + 7 을 계산해야한다.... 브루트포스 알고리즘cpp2022.01백준알고리즘2022.01 [C++] 백준 2108 : 통계학 최빈값에서 STL의 upper_bound와 lower_bound를 사용해보려 애쓰다가 다른 방식으로 틀어 풀게 된 문제. 최빈값을 찾을 때는 index에 해당 개수를 세는 것이 제일 효율적인 것 같다. 크기가 너무 많지 않은 경우에는!... 알고리즘cpp2022.01백준2022.01 [C++] 백준 10828 : 스택 오늘의 키포인트 c++은 stack 라이브러리를 가지고 잇다. 그걸 쓰면 바로바로 해결 완료... 알고리즘2022.01백준cpp2022.01 [C++] 백준 1934 : 최소공배수 오늘의 키포인트 B의 배수가 처음으로 A로 나누어지는 순간(나머지 = 0) 그 수가 최소 공배수 이다.... 알고리즘2022.01백준cpp2022.01 [C++] 백준 1246 : 온라인 판매 오늘의 키포인트 c++ 내림차순 정렬법 : 1인당 1 달걀이기에 내림차순으로 정렬하고 인덱스(사람 수) * 인덱스 값(달걀 값) 을 구하면 된다. 인덱스가 곧 사람 수 이기때문에, 인덱스가 N 을 넘지 않게 한다면 달걀 전체의 개수를 제한할 수 있다.... 그리디 알고리즘cpp2022.01백준알고리즘2022.01 [C++] 백준 1932 : 정수 삼각형 오늘의 키포인트 파스칼의 삼각형을 이용한 문제. 문제와 굉장히 비슷하다. 0부터 배열을 시작하면 0 - 1 이 인덱스의 범위를 벗어나기에 1부터 인덱스를 사용하도록 하였다. 위에서 아래로가 아니라 아래서 위로 생각하자. 합산값은 윗줄의 최대값과 자신의 값을 더한 것과 같다. 점화식... 다이나믹 프로그래밍cpp2022.01백준알고리즘2022.01 [C++] 백준 11721 : 열 개씩 끊어 출력하기 오늘의 키포인트 str을 10개씩 잘라서 치환할 생각을 처음에 했는데 굉장히 비효율적이다. 그냥 10의 배수일 때 \n을 삽입함으로써 간단히 해결할 수 있다.... 알고리즘2022.01백준cpp2022.01 [C++] 백준 1065 : 한수 오늘의 키포인트 이 문제는 한수의 개수를 구하는 문제 100 미만인 수는 2자리 수이기 때문에 무조건 한수이다.... 알고리즘2022.01백준cpp2022.01 [C++] 백준 1920 : 수 찾기 오늘의 키포인트 시간 초과 에러 정렬시킨 후 이진탐색(중위순회)를 이용해서 탐색 시간을 줄였다. std::binary_search 를 사용해 볼 수도 있을 것 같다.... cpp2022.01백준알고리즘이진 탐색2022.01 [C++] 백준 2448 : 별 찍기 - 11 오늘의 키포인트 첫 골드 문제. 복습 필요. 너무너무 안풀려서 인터넷을 많이 참고하였다. 그냥 별을 찍는것이 아니라 모두 배열에 넣는 것이 핵심. 별의 시작점을 이용한다. 삼각형을 모은 것들이 되풀이 되므로 재귀함수를 호출해야한다.... 알고리즘2022.01백준cpp2022.01 [C++] 백준 1929 : 소수 구하기 오늘의 키포인트 에라토스테네스의 체는 배열을 이용하여 소수를 구하는 알고리즘이다. 소수 판별 범위까지 배열을 생성하고 인덱스에 해당하는 값을 넣어 초기화해준다. 2부터 순회하면서 만약 배열의 값이 0 (지워진 상태)이 아닌 경우 소수로 보고 해당 수의 배수를 모두 지운다(배수이면 소수가 아니다)... 에라토스테네스의 체알고리즘cpp백준2022.012022.01