본문 바로가기

코드17

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 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 방법 선수 참가 명단(participant)과 완주 명단(completion)를 비교해서 완주하지 못한 이름을 찾기 반복문으로 일일히 비교하기에는 너무 비효율적이기 때문에 비교하는 것보다는 map에 저장을 해서 관리하는 것이 더 좋음 map, unordered_map 둘 중에 어느것을 사용해도 무방 unordered_map 알고리즘 1) 선수 참가 명단(participant)을 unordered_map map_participant에 넣어줌 2) 완주 명단(c.. 2022. 12. 16.
Lv1_[키패드 누르기, C++] 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 순대대로 누르는 번호가 어디에 위치한지 파악이 우선이기 때문에 아래와 같이 키패드를 구분해서 저장했다. vector left_keypad = { 1, 4, 7, 10 }; vector center_keypad = { 2, 5, 8, 0 }; vector right_keypad = { 3, 6, 9, 11 }; 구분하기 위해 들어온 번호에 3을 나머지연산(mod[%])하게 되면 원하는 키패드 위치가 나온다. ex) 5가 들어오면 (5%3 = 2) 나머지가 2이.. 2022. 12. 15.
Lv1_[가장 가까운 같은 글자, C++] 풀이 및 알고리즘 정리 - 프로그래머스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용, 조건, 예시는 프로그래머스 사이트 참조 같은 알파벳이 현재 인덱스 이전에 몇번째 인덱스에 있었는지를 알면 두 알파벳 사이의 거리를 알 수 있습니다. 예시) banana에서 a의 인덱스를 보면 [0] [1] [2] [3] [4] [5] b a n a n a [1], [3], [5]에 a가 존재하고 서로의 거리는 (3-1) = 2, (5-3) = 2 가 된다. 예시) dashboard에서 a의 인덱스를 보면 [0] [1] [2] [3] [4] [5] [6] [7] [8] d a s h b o a r .. 2022. 12. 15.
[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++ STL] vector 중복 제거 방법(sort, unique, erase) (set, unordered_set) vector nums를 중복 제거한다면 1.sort, unique, erase 함수를 활용 HTML 삽입 미리보기할 수 없는 소스 2. set, unordered_set 구조 활용 HTML 삽입 미리보기할 수 없는 소스 2022. 12. 7.
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.
728x90
반응형