코딩 테스트
-
완주하지 못한 선수 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수�� programmers.co.kr 문제 설명 participant에 있는 참가자들 중 completion에 없어 완주하지 못한 선수를 찾는 문제 문제 카테고리에 해쉬 라고 명시되어있지만 STL 도 익숙해질겸 의 find함수를 이용해서 풀어보았다. 결과는 역시 시간초과 해쉬구조가 왜 빠른지를 보여주는 문제였다. 문제 풀이 소스코드 : C++ 틀린 코드 find함수를 이용한 풀이. #include #include #include #include using ..
[Programmers - lv01] 완주하지 못한 선수 (cpp / python)완주하지 못한 선수 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수�� programmers.co.kr 문제 설명 participant에 있는 참가자들 중 completion에 없어 완주하지 못한 선수를 찾는 문제 문제 카테고리에 해쉬 라고 명시되어있지만 STL 도 익숙해질겸 의 find함수를 이용해서 풀어보았다. 결과는 역시 시간초과 해쉬구조가 왜 빠른지를 보여주는 문제였다. 문제 풀이 소스코드 : C++ 틀린 코드 find함수를 이용한 풀이. #include #include #include #include using ..
2020.06.04 -
기둥과 보 설치 문제 설명 구현 문제이다. 머릿속으로 구현은 나름 빠르게 됐는데 코드로 옮기면서 조건을 한 두개씩 빼먹어서 시간이 오래걸렸다. 시험이 아닌데도 3시간씩 걸려서 푸는데.. 언제 이런문제를 1시간 안에 풀 수 있을까... 기둥과 보가 설치될 수 있는 조건을 명확하게 해결하여야한다. 설치할 때는 해당 위치에 기둥과 보가 설치될 수 있는지 확인하고, 삭제할 때는 삭제를 시킨 후 모든 구역에 대해 기둥과 보가 설치 할 수 있는지 없는지 확인한다. 문제 풀이 소스코드 : C++ 해당 좌표에 기둥과 보가 설치 되어있는지 확인하는 구조체 POS Map[101][101]을 선언한다. 우선 해당 좌표에 기둥과 보를 설치할 수 있는지 확인하는 두 함수 chk_pillar와 chk_beam을 구현한다. chk..
[2020 kakao blind recruitment] lv3 기둥과 보 설치(cpp/python)기둥과 보 설치 문제 설명 구현 문제이다. 머릿속으로 구현은 나름 빠르게 됐는데 코드로 옮기면서 조건을 한 두개씩 빼먹어서 시간이 오래걸렸다. 시험이 아닌데도 3시간씩 걸려서 푸는데.. 언제 이런문제를 1시간 안에 풀 수 있을까... 기둥과 보가 설치될 수 있는 조건을 명확하게 해결하여야한다. 설치할 때는 해당 위치에 기둥과 보가 설치될 수 있는지 확인하고, 삭제할 때는 삭제를 시킨 후 모든 구역에 대해 기둥과 보가 설치 할 수 있는지 없는지 확인한다. 문제 풀이 소스코드 : C++ 해당 좌표에 기둥과 보가 설치 되어있는지 확인하는 구조체 POS Map[101][101]을 선언한다. 우선 해당 좌표에 기둥과 보를 설치할 수 있는지 확인하는 두 함수 chk_pillar와 chk_beam을 구현한다. chk..
2020.05.30 -
프린터 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린�� programmers.co.kr 문제 설명 양방향 queue 즉, deque를 이용하여 우선순위에 맞지 않은 작업들은 다시 대기열로 push_back하여 요청한 문서가 몇번째인지 찾아낸다. cpp은 작업들을 내림차순 정렬하여 최대값을 갱샌했고 python은 max함수를 이용하여 매 탐색마다 최대값을 갱신해줬다. 문제 풀이 소스코드 : C++ #include #include #include #include using namespace std; int solution(vector pri, ..
[Programmers - lv02] 프린터 (cpp / python)프린터 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린�� programmers.co.kr 문제 설명 양방향 queue 즉, deque를 이용하여 우선순위에 맞지 않은 작업들은 다시 대기열로 push_back하여 요청한 문서가 몇번째인지 찾아낸다. cpp은 작업들을 내림차순 정렬하여 최대값을 갱샌했고 python은 max함수를 이용하여 매 탐색마다 최대값을 갱신해줬다. 문제 풀이 소스코드 : C++ #include #include #include #include using namespace std; int solution(vector pri, ..
2020.05.26 -
예상 대진표 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 N 은 2의 지수승으로 주어지기 때문에 2진수와 관련이 있지 않을까 생각했다. 8팀이 주어졌을때 2번과 7번이 만나기 위해서는 총 3번의 경기를 진행해야한다. 1 2 3 4 5 6 7 8 (8팀) 2 x y 7 (4팀) 2 7 (2팀) 문제 풀이 소스코드 : C++ 2로 나눌때마다 answer++을 해주고, ( 로직을 2진수로 접근해서 시프트 연산자를 썼다.), a와 b가 같아질 때까지 반복한다. 1 2 3 4 5 6 7 8 (8팀) - 2로 나누고 answer +1 1 x y 4 (4..
[Programmers - 2017 팁스타운] 예상 대진표 (cpp / python)예상 대진표 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 N 은 2의 지수승으로 주어지기 때문에 2진수와 관련이 있지 않을까 생각했다. 8팀이 주어졌을때 2번과 7번이 만나기 위해서는 총 3번의 경기를 진행해야한다. 1 2 3 4 5 6 7 8 (8팀) 2 x y 7 (4팀) 2 7 (2팀) 문제 풀이 소스코드 : C++ 2로 나눌때마다 answer++을 해주고, ( 로직을 2진수로 접근해서 시프트 연산자를 썼다.), a와 b가 같아질 때까지 반복한다. 1 2 3 4 5 6 7 8 (8팀) - 2로 나누고 answer +1 1 x y 4 (4..
2020.05.14 -
영어 끝말잇기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 N 명의 사람이 주어진 단어들을 하나씩 말하면서 끝말잇기가 맞는지, 같은 단어를 사용했는지 확인하는 문제다. 문제 풀이 소스코드 : C++ 중복되는 단어가 불러졌는지 확인하기 위한 unordered_set 선언 영어 단어를 몇 개를 말했는지 세는 cnt 선언 words.size() 를 N개씩 잘라가며 idx를 갱신해주기위한 idx = i%n 이전 단어의 끝부분과 현재 단어의 앞부분을 비교해서 다르다면 종료 시점의 사람 idx와 말한 갯수를 answer에 푸시하고 반환 set안에 존재하..
[Programmers - S/W coding 2018] 영어 끝말잇기 (cpp / python)영어 끝말잇기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 N 명의 사람이 주어진 단어들을 하나씩 말하면서 끝말잇기가 맞는지, 같은 단어를 사용했는지 확인하는 문제다. 문제 풀이 소스코드 : C++ 중복되는 단어가 불러졌는지 확인하기 위한 unordered_set 선언 영어 단어를 몇 개를 말했는지 세는 cnt 선언 words.size() 를 N개씩 잘라가며 idx를 갱신해주기위한 idx = i%n 이전 단어의 끝부분과 현재 단어의 앞부분을 비교해서 다르다면 종료 시점의 사람 idx와 말한 갯수를 answer에 푸시하고 반환 set안에 존재하..
2020.05.14