본문 바로가기

알고리즘/문제집6

[C++] 2개 이하로 다른 비트 ★★ 2개 이하로 다른 비트 난이도 ★★ 문제 내 풀이 규칙찾기 ■ 짝수 0을 포함한 2, 4, 6,... 짝수들은 비트로 표현했을 때, 가장 오른쪽 비트는 항상 0이다. 가장 오른쪽 비트는 2^0 = 1에 대응하며, 그 외 나머지 비트들은 모두 2^i으로 짝수이기 때문이다. 가장 오른쪽 비트가 1이면 + 1이 된다는 것이므로 그 비트는 무조건 홀수가 될 수 밖에 없다. 따라서 짝수인 수 2n들의 f 값은 언제나 2n + 1이다. 가장 오른쪽 비트가 0이기에 1을 더해주면 '올림'없이 총 1개의 비트만 다르게 된다. ■ 홀수 짝수와 달리 홀수를 비트로 표현하면 가장 오른쪽 비트가 무조건 1이다. 그렇기 때문에 홀수는 더했을 때의 '올림'을 생각해야 한다. 1만 더해주어도 "최소 2개의 비트"가 달라지기 때문이.. 2022. 8. 16.
[알고리즘] 완주하지 못한 선수 안녕하세요 기린입니다 :=) 저는 요즘 프로그래머스에서 진행하고있는 [커뮤러닝/5기/C++] 코딩테스트 실력 UP 패키지: 문제 풀이 꿀팁과 실전 모의고사 with C++ 을 들으며 알고리즘 공부를 하고있는데요 내일 배움 카드로 수강하면 수강료가 3만원이고 수강 완료시 전액 환급해주는 아주 좋은 강의랍니다! 광고아님 https://programmers.co.kr/learn/courses/13557 그럼 바로시작해볼게요 :] '완주하지 못한 선수' 문제를 한번 풀어보도록 하겠습니다. 완주하지 못한 선수 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들.. 2022. 6. 24.
[알고리즘-11] 심화 정렬 문제 풀어보기 안녕하세요 기린입니다 :) 이번에는 지난 시간까지 배운 정렬들을 활용하여 백준 온라인 저지 https://www.acmicpc.net/ 에 있는 심화 정렬 문제들을 풀어보고자 합니다. 실제 프로그래밍 대회나 실무에서 요구하는 대부분의 정렬 문제는 단순한 형태의 정렬 문제가 아닙니다. 다양하게 연관된 데이터 상에서 정렬을 수행해야 하는 문제가 대부분입니다. 따라서 심화적인 정렬 문제들을 풀어보면서 연습하는 시간이 필요합니다. ① 단어 정렬 https://www.acmicpc.net/problem/1181 위 문제는 단어들을 정렬하는 문제입니다. 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 1. 길이가 짧은 것부터 2. 길이가 같으면 사전 순으로 .. 2022. 4. 12.
[알고리즘-8] C++ STL sort 함수 다루기 - ② 안녕하세요 기린입니다 :) 오늘은 지난 시간에 이어서 STL sort 함수 다루기를 진행해보도록 하겠습니다. 2022.03.29 - [알고리즘/문제집] - [알고리즘-7] C++ STL sort() 함수 다루기 - ① [알고리즘-7] C++ STL sort() 함수 다루기 - ① 안녕하세요 기린입니다 :) 지금까지 선택 정렬, 버블 정렬, 삽입 정렬, 퀵 정렬, 병합 정렬의 개념을 이해하고 간단한 예시를 통해 프로그램까지 작성하는 시간을 가졌습니다. 자 이번엔 C++ STL sor kirinit.tistory.com 지난 시간에 클래스(Class)를 정의해서 여러 개의 변수가 존재하는 상황에서 '특정한 변수'를 기준으로 정렬하는 방법에 대해 알아보았죠 :) 하지만, 클래스를 정의하는 방식은 프로그래밍 속.. 2022. 3. 30.
[알고리즘-7] C++ STL sort() 함수 다루기 - ① 안녕하세요 기린입니다 :) 지금까지 선택 정렬, 버블 정렬, 삽입 정렬, 퀵 정렬, 병합 정렬의 개념을 이해하고 간단한 예시를 통해 프로그램까지 작성하는 시간을 가졌습니다. 자 이번엔 C++ STL sort 함수에 대해 알아 보도록 하겠습니다. 정렬은 컴퓨터 공학의 오래된 연구 분야이므로 아주 훌륭한 정렬 라이브러리들이 존재하죠. 즉, 앞서 직접 코딩했던것 처럼 할 필요 없이 라이브러리를 가져다 쓰면 되는 것입니다. 그치만 기본적인 정렬 원리에 대해서는 잘 알고있어야 문제해결능력에 도움이 될거라 생각합니다. 이제 sort 함수의 사용법을 소스코드로 보시겠습니다 #include #include using namespace std; int main(void) { // 입력 int a[10] = {2, 3, .. 2022. 3. 29.
[알고리즘-5] 기초 정렬 알고리즘 문제 풀이 안녕하세요 기린입니다 :) 이번 시간에는 앞서 배웠던 정렬 알고리즘을 활용해 실제로 문제를 풀어보는 시간을 가져보겠습니다. 먼저 알고리즘 문제 풀이 사이트는 종류가 다양한데 저는 최백준님 사이트를 추천드립니다 ! 백준 온라인 저지: https://www.acmicpc.net/ 백준 온라인 저지에 들어가셔서 일단 회원가입 후 로그인 해보실게요 ! 알고리즘을 이제 막 시작하신 분이라면 문제 카테고리에서 > 알고리즘 분류 > 단계별로 풀어보기 를 먼저 스터디 해보시는걸 추천드려요 ! 저희는 단계별 풀어보기를 해보도록 하겠습니다 : ] 첫 번째 문제는 '수 정렬하기' 입니다. https://www.acmicpc.net/submit/2750 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시.. 2022. 3. 23.