[Programmers - lv02] 피보나치 수 (cpp / python)
·
Algorithm/Programmers
피보나치 수 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 피보나치 수를 구해보자. 흔히들 알고있는 점화식 $f(n) = f(n-1) + f(n-2)$ 를 이용하여 문제를 해결한다. 문제 풀이 소스코드 : C++ 반복문(dynamic programming - bottom-up: Tabulation)을 이용한 풀이1 #include #include #include using namespace std; const int MAX = 100001; const int MOD = 1234567; int dp[MAX]; int solution(int n) ..
[Programmers - lv02] 최댓값과 최솟값 (cpp / python)
·
Algorithm/Programmers
최댓값과 최솟값 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 리스트에 있는 값들 중 최댓값과 최솟값을 찾는 문제 문제 풀이 소스코드 : C++ 문자열로 들어온 값이기 때문에 " "공백을 기준으로 split을 한다. split이 된 문자들을 stoi를 이용하여 정수형으로 바꿔주고 최댓값과 최솟값을 갱신한다. answer 도 문자열을 요구하므로 tostring을 이용하여 문자열로 변환한 후 답을 반환한다. #include #include #include #include using namespace std; vector split(string s,..
[2019 kakao blind recruitment] 02. 실패율(cpp/python)
·
Algorithm/Programmers
실패율 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 N개의 stage 에 대한 카운팅 정렬을 하고 stage에 대한 실패율 (스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수) 을 구하는 문제다. 문제 풀이 소스코드 : C++ 카운팅 정렬을 위한 cnt[501] 배열을 전역변수와 전체 사용자 수 size = stage.size()를 선언한다. stages에 들어있는 값들을 카운팅 정렬한다. 이때 해당 값이 N+1인 값은 제외하고 정렬한다. (N+1은 모든 스테이지를 클리언 사용자) 실패율을 구하기위한 ..
[2019 kakao blind recruitment] 01. 오픈채팅방(cpp/python)
·
Algorithm/Programmers
오픈채팅방 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 사용자의 id를 key값으로 가지며 사용자의 행동에 따라 변하는 결과를 출력하는 문제다. 이미지의 예시가 정확한 설명을 해주고 있다. 문제 풀이 소스코드 : C++ record에 기록된 행동들에 대해 split을 해주어 vector tmp 에 순서대로 담아준다. 명령에 따라 조건을 처리해준다. Enter 라면 id를 key값으로 하고 nickname을 value로 하는 unordered_map에 넣어주고 q에 {id , "님이 들어왔습니다."}를 푸시해준다. 이때 이미 존재하는 key라면..
[2019 kakao winter internship] 05. 징검다리 건너기(cpp/python)
·
Algorithm/Programmers
징검다리 건너기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 건널 수 있는 사람 수를 기준으로 1 ~ max(stones) 에 대한 이분탐색을 하여 stones 값들을 mid 값 만큼 갂아 건널 수 있는지 확인하여 그 때의 최소값을 찾는 문제이다. 문제 풀이 소스코드 : C++ left =1 , right = stones의 최대값으로 초기화하고 이분탐색에 진입한다. mid = (left + right)/2로 놓고, 건널 수 있는 mid값보다 작거나 같은 경우를 세는 cnt=0 으로 놓는다. cnt>k되면 건널 수 없는 경우이므로 cnt>=k가..
[2019 kakao winter internship] 04. 호텔 방 배정 (cpp/python)
·
Algorithm/Programmers
호텔 방 배정 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 을 이용하여 주어진 호텔 방 번호를 맵의 key 값으로 생각하여 방 배정을 하고 다음 방 번호를 value 로 받아 방을 배정 받을때마다 다음 방 번호를 갱신하여 준다. 자료구조 trie 에서 착안하였다. 문제 풀이 소스코드 : C++ 손님이 원하는 방 번호가 담겨있는 room_number 를 key 로 받고 해당 key 가 없으면 unordered_map m에 insert({배정 받은 방번호, {배정 받은 손님 , 다음 방 번호}})해준다. 이 때 다음 방 번호는 배정 받은 방 번호..
[2019 kakao winter internship] 03. 불량 사용자 (cpp/python)
·
Algorithm/Programmers
불량 사용자 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 user_id 중에서 banned_id의 조건에 맞는 원소를 뽑는 조합 문제다. 단, banned_id의 조건에 맞는 원소를 뽑을 때 중복이 생길 수 가 있는데 이 중복을 피하는게 키포인트 인 문제이다. 백트래킹을 이용한 조합을 구현하고 ``을 이용하여 중복을 제거했다. 문제 풀이 소스코드 : C++ user_id를 사용 여부를 체크하기위한 vector chk를 user_id 사이즈 만큼 할당해준다. 백트래킹을 이용한 조합구현 process()를 진행한다. uid가 사용한 적이 없고 b..
[2019 kakao winter internship] 02. 튜플 (cpp/python)
·
Algorithm/Programmers
튜플 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 주어지는 s 원소들의 정보를 스플릿 하여 어떤 순서를 따르는 튜플을 찾아내는 문제이다. 즉, 주어지는 s에 있는 튜플들은 최종 순서와는 상관없이 주어지는데 이 튜플들의 원소 수가 작은 튜플부터 나열하여 최종 튜플의 순서를 찾아내면된다. 문제 풀이 소스코드 : C++ 우선 주어지는 s의 맨 처음과 끝은 각각 {, }이므로 1 ~ s.size() - 1까지 탐색한다. {이면 하나의 튜플이 시작하는 시점이므로 튜플이 시작하는 지점을 의미하는 chk를 true로 바꿔주고 스플릿 하여 담아줄 이차원 벡..
WONILLISM
'python' 태그의 글 목록 (8 Page)