본문 바로가기

Algorithm9

[C++] 소수(Prime Number) 효율적으로 구하기 소수(Prime Number) https://ko.wikipedia.org/wiki/%EC%86%8C%EC%88%98_(%EC%88%98%EB%A1%A0) 소수 (수론) - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 각각의 자리에 놓인 숫자와 소수점을 통해 나타낸 실수(小數)에 대해서는 소수 (기수법) 문서를 참고하십시오. 좌측은 소수, 우측은 합성수. ...소수란 1보다 큰 ko.wikipedia.org 소수 판별하기 알고리즘 어느 수까지 판별하는 수를 나눠서 나머지가 0이 안나오면 소수로 인정 소수를 판별하는 가장 효율적인 방법은 해당 숫자의 √N 까지 확인하는하는 것 HTML 삽입 미리보기할 수 없는 소스 동일한 결과이므로 편한 방식으로 사용하면 됩니다. for(int i =.. 2022. 12. 9.
[C++] 유클리드 호제법 (최대공약수, 최소공배수) 유클리드 호제법 또는 유클리드 알고리즘 2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘 호제법이란 말은 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘 예시) 1112와 695를 반복해서 MOD 연산 유클리드 호제법(Euclidean-algorithm) 유클리드 호제법에 대해 알아보자. velog.io 최대공약수 GCD (Greatest Common Divisor) 139일 때 나머지가 0이 되므로 최대공약수는 139가 된다. 최소공배수 LCM (Least Common Multiple) 두개의 수를 곱한 뒤 최대공약수로 나눠주면됨 (1112 * 695) / 139 = 5560 코드 HTML 삽입 미리보기할 수 없는 소스 2022. 12. 9.
[C++ STL] 문자열 치환 (replace, regex_replace) 문자열을 치환해주는 함수 (#문자열 변환 #문자열 변경) replace regex_replace 대상 문자열에서 지정한 위치부터 원하는 문자로 바꿈 대상 문자열에서 특정 문자열만 검색해 원하는 문자로 변환 replace 문자열을 치환해주는 함수인 replace 사용 방법 문자열.replace(시작 위치, 길이, 치환 문자열) 시작 위치부터 지정한 길이만큼 문자열을 치환 문자로 변환. 시작 위치 인덱스는 0부터 시작 지정한 위치부터 문자열을 치환하는 샘플을 보겠습니다. HTML 삽입 미리보기할 수 없는 소스 결과 kkcdef 변수 str1에 대입한 문자열을 replace 함수를 사용해 치환 시작 위치는 첫 번째 글자인 인덱스 0부터 두 글자를 치환 치환 문자는 kk regex_replace 대상 문자열에서.. 2022. 12. 8.
Lv1_[명예의 전당(1), C++] 풀이 및 알고리즘 정리 - 프로그래머스 https://school.programmers.co.kr/learn/courses/30/lessons/138477 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 ※ 동료와 코드 리뷰 후 우선순위 큐를 활용해보라는 의견을 듣고 내용 추가 두 가지의 풀이 방식 정렬 함수 (sort) 우선순위 큐 (Priority Queue) 1. 처음 풀었던 sort를 이용한 풀이 방식 1) score 점수 비교 1-1) 최하위 저장된 점수 개수가 k개를 넘지 않을때 → 2-1)으로 이동 1-2) k를 넘거나 같을 때 →.. 2022. 12. 5.
Lv1_[크레인 인형뽑기 게임, C++] 알고리즘 정리 - 프로그래머스 https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 문제의 핵심은 "2차원 배열 되어 있는 보드판과 크레인이 움직일 때 어떤 차원의 인덱스를 증가시켜줄 수 있는지"를 보는 문제이다. 예를들어 3X3 Board에서 move 2번이 들어온다면 크레인을 위의 그림과 같이 배치가 된다. 1) move 2번이지만 board index는 0부터 시작하기 때문에 -1을 해줘서 1번째 위치에서 시작 2) 1차원.. 2022. 12. 4.
Lv1_[신규 아이디 추천, C++] 알고리즘 정리 - 프로그래머스 https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 아래의 조건을 차근차근 풀어나가면서 중복되는 동작을 최소화 해주면 된다. 주어진 단계별로 풀어나간다면 불필요한 탐색이 많아지게 된다 (ex. 1단계 후 2단계를 진행하면 1단계에서 모든 글자 탐색을 마치고 2단계에 또 다시 반복탐색을 하게된다) 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자.. 2022. 12. 4.
Lv1_[문자열 나누기, C++] 알고리즘 정리 - 프로그래머스 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 해석해서 풀어보면 아래와 같은 흐름이 나온다. 1) 첫 글자 x를 뽑음 1-1) 첫 글자는 무조건 일치하므로 'same_index+1'을 해주고 다음 인덱스로 넘김 2) 다음 글자와 비교 2-1) 문자가 같으면 same_index+1 2-2) 문자가 다르면 differ_index+1 3) same_index, differ_index의 값.. 2022. 12. 2.
Lv1_[기사단원의 무기, C++] 알고리즘 정리 - 프로그래머스 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제의 핵심은 약수를 구하는 것이다. 왜냐하면 기사의 number의 약수가 본인의 공격력이 때문에 약수를 구하는 것이 필수! 약수를 구하는 방법이 기억이 잘 안나서 검색해보니 초등학교 5학년..에 배웠던거였음.. https://workingdog.tistory.com/51 약수 구하기 [수학] | "자연수를 어떤 수로 나누었을 때 나누어 .. 2022. 11. 30.
C++ sort 알고리즘 완벽 정리 (예제 첨부) C++ 에서 sort algorithm 사용법에 대해서 정리해봤습니다. 개발할 때, 정렬을 정말 많이 사용합니다. 기본적으로 오름차순, 내림차순 정렬을 할 수가 있고 더 나아가 객체정렬을 필요한 경우가 있습니다. 그럴때 어렵지 않게 사용하는 정렬 알고리즘이 stl::sort( )가 되겠습니다. STL에서 정렬을 해주는 함수 quick sort(퀵 정렬)을 기반으로 구현 [시간 복잡도 n log n] www.cplusplus.com/reference/algorithm/sort/ sort - C++ Reference custom (2)template void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp); www.cplu.. 2020. 11. 5.
728x90
반응형