본문 바로가기

프로그래밍70

Lv1_[[1차] 비밀지도, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 알고리즘 두 가지의 풀이 방식을 설명 10진수를 2진수로 변경하면서 0을 공백(" "), 1을 벽("#")으로 변환 bitset, regex_replace를 이용한 방법 1의 알고리즘 두 장의 지도를 겹친다 → 동일 위치 숫자를 |(비트 OR 연산자)를 해준다. 반복문을 통해 10진수를 2진수로 변환(2진수로 전부 변환 되고 n번 모두 수행할 때까지) 0을 공백(" "_), 1을 벽("#")으로 변환 변환된 string을 앞으로 붙이면서 누적 (2진수 변환 .. 2023. 1. 13.
Lv1_[삼총사, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 알고리즘 풀이 방식의 핵심은 3명을 뽑은 경우의 수를 뽑는 것! 그러면 떠오르는 방법은 두가지 배열 s의 n개의 원소 중에서 r개의 원소를 택하는 방법 (조합을 구하는 방법) 반복문을 이용해서 모든 조합 뽑기 3개의 수만 뽑으면 되기 때문에 조합(next_permutation, prev_permutation)을 사용과 삼중 반복문을 이용해서 조합 뽑는 두가지 방법을 코드로 구성해놨다. (※ 뽑아야하는 개수가 커지면 반복문 보다는 조합(next_permutat.. 2023. 1. 12.
Lv1_[문자열 내 마음대로 정렬하기, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 알고리즘 sort를 이용해서 정렬 정렬비교는 custom함수를 통해서 재설정해서 진행 정렬기준 : n번째 글자를 기준으로 오름차순 여기서 정렬비교에 쓰이는 custom함수 위치에 별도함수를 생성, 람다함수 생성 등 비교방법은 어러가지이지만 여기서는 인자값 n이 필요하기 때문에 람다함수를 이용해서 풀어줬음 또한, custom함수 코드량이 적기 때문에 람다함수를 사용해서 풀면 보기 깔끔함) custom함수에는 다음과 같은 알고리즘 적용 n번째 문자가 같으면, 전.. 2023. 1. 11.
Lv1_[K번째수, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 알고리즘 정렬해야하는 부분을 찾아서 잘라내기 잘라낸 부분을 정렬 인자값으로 주어지기 때문에 주어진 인덱스와 배열의 인덱스를 맞춰서 잘 설정해주면 됨 (0과 1 서로 시작점이 다르기 때문) start = item[0] - 1; (i번째 숫자) end = item[1]; (j번째 숫자) k_index = item[2] - 1; (k번째 숫자) 배열을 잘라내기 위해서 copy i번째 숫자부터 j번째 숫자이면 [i-1, j) 가 됨 copy로 배열을 잘라났으면 so.. 2023. 1. 10.
Lv1_[두 개 뽑아서 더하기, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 알고리즘 풀이 방식의 핵심은 두 개의 수를 뽑는 것! 그러면 떠오르는 방법은 두가지 배열 s의 n개의 원소 중에서 r개의 원소를 택하는 방법 (조합을 구하는 방법) 반복문을 이용해서 모든 조합 뽑기 여기서는 두 개의 수만 뽑으면 되기 때문에 조합(next_permutation, prev_permutation)을 사용해도 되지만 이중 반복문을 이용해서 조합을 뽑았다(※ 뽑아야하는 개수가 커지면 반복문 보다는 조합(next_permutation, prev_per.. 2023. 1. 3.
Lv1_[폰켓몬, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 문제에서 우선적으로 해결해야할 부분은 중복된 폰켓몬 번호를 제거하는 것이다. 예시 설명에 "최대한 다양한 종류의 폰켓몬을 가지길 원하기 때문에"라고 나와 있기 때문이다. vector에 저장된 중복을 제거하는 방법은 아래의 링크에 정리해 놨으니 참고하면 됩니다. [C++ STL] vector 중복 제거 방법(sort, unique, erase) (set, unordered_set) vector nums를 중복 제거한다면 1.sort, unique, erase .. 2023. 1. 2.
소수(Prime Number) 구하기 - 에라토스테네스의 체 해당 수가 소수라는 것을 판별하는 방법은 이전 포스팅에 했었다. [C++] 소수(Prime Number) 효율적으로 구하기 소수(Prime Number) https://ko.wikipedia.org/wiki/%EC%86%8C%EC%88%98_(%EC%88%98%EB%A1%A0) 소수 (수론) - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 각각의 자리에 놓인 숫자와 소수점을 통해 workingdog.tistory.com 그러면 1부터 n 사이에 있는 소수의 개수는 어떻게 구할까? 바로 생각 나는 방식은 소수를 판단하는 알고리즘을 반복시켜주면 되지만 숫자가 커질 수록 점점 많은 수의 연산이 필요하게 된다. 그래서 소수 관련 문제를 풀 때 자주 사용되는 방법으로 "에라토스테네스의 체"를.. 2022. 12. 26.
Lv1_[실패율, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 아래의 예시를 가지고 설명 - stages : [2, 1, 2, 6, 2, 4, 3, 3] - N = 5 1. map 초기화 2. map에 stages 넣기 stages : [2, 1, 2, 6, 2, 4, 3, 3] (총 8명) 3. 실패율 계산 후 pair에 저장 4. 계산 완료된 결과값 정렬 커스텀 정렬로 원하는 조건에 따른 정렬하도록 함수 구현 실패율이 높은 순으로 내림차순 정렬 (단, 만약 실패율이 같은 스테이지가 있다면 작은 번호의 스테이지가 앞으.. 2022. 12. 23.
Lv1_[로또의 최고 순위와 최저 순위, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 여기서 알아야할 풀이 방식은 다음과 같다 lottos와 win_nums를 비교해서 일치하는 숫자 찾기 lottos에 존재하는 0의 갯수 찾기 (일치하는 개수 == 최저 순위), (최저 순의 + 0의 개수 = 최고 순위) 두 벡터간의 일치하는 수를 찾는 방법은 여러가지가 중에 set 자료구조를 사용해서 비교 각 벡터에 저장된 값은 중복된 수가 들어있지 않기 때문에 데이터 손실도 없기에 검색이 빠른 set 구조를 사용 win_nums를 set으로 변환 후 lot.. 2022. 12. 23.
728x90
반응형