본문 바로가기

Algorithm/프로그래머스

(36)
[2019 카카오] 매칭 점수 programmers.co.kr/learn/courses/30/lessons/42893 코딩테스트 연습 - 매칭 점수 매칭 점수 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀� programmers.co.kr #include #include #include #include using namespace std; void str_tolower(string &str) { for (auto it = str.begin(); it != str.end(); it++) { (*it) = tolower(*it); } } bool is_alpha(char c) { return (c > 'a' && ..
[2019 카카오] 길 찾기 게임 programmers.co.kr/learn/courses/30/lessons/42892 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr #include #include using namespace std; vector info; vector order; class Node { public: int no; Node *left; Node *right; Node(int no) : no(no) { left = nullptr; right = nullptr; }; void insert(Node *node) { // 왼쪽으..
[2020 카카오 인턴십] 동굴 탐험 programmers.co.kr/learn/courses/30/lessons/67260 코딩테스트 연습 - 동굴 탐험 9 [[0,1],[0,3],[0,7],[8,1],[3,6],[1,2],[4,7],[7,5]] [[8,5],[6,7],[4,1]] true 9 [[8,1],[0,1],[1,2],[0,7],[4,7],[0,3],[7,5],[3,6]] [[4,1],[5,2]] true 9 [[0,1],[0,3],[0,7],[8,1],[3,6],[1,2],[4,7],[7,5]] [[4,1],[8,7],[6,5]] false programmers.co.kr tech.kakao.com/2020/07/01/2020-internship-test/ 2020 카카오 인턴십 for Tech developers 문제해설 20..
[2020 카카오 인턴십] 경주로 건설 programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr #include #include #include using namespace std; const in..
[2020 카카오 인턴십] 보석 쇼핑 programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr #include #include #include #include using namespace std; vector solution(vector gems) { vector answer(2); unordered_set s; for (string gem : gems) s.insert(gem); unordered_map m; int start = 0; int end; int cnt = 100001; for (end = 0; end ..
[2020 카카오 인턴십] 키패드 누르기 programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr #include #include #include using namespace std; string solution(vector numbers, string hand) { string answer = ""; bool isRight = hand == "right"; pa..
[프로그래머스] 기지국 설치 https://programmers.co.kr/learn/courses/30/lessons/12979 코딩테스트 연습 - 기지국 설치 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5 programmers.co.kr while문 돌면서 기지국을 왼쪽부터 하나씩 찍어가는 방식(?)으로 해도 괜찮았을거 같은데 인덱스를 잘못 지정했는지 값이 제대로 안나오길래 각각의 간격 별로 기지국을 몇 개 설치해야 하는지 구하는 식으로 풀었다. Math.ceil을 썼더니 효율성에서 시간 초과가 나서..ㅜㅜ 실수연산은 가급적 하지 말아야겠다는 교훈을 얻었다. class Sol..
[프로그래머스] 방문 길이 https://programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr 구현 실수만 하지 않는다면 쉽게 풀리지 않을까 싶다. 나는 지나간 길을 visited 배열에 마킹하는 방식으로 풀었는데 HashSet으로 풀어도 될 듯 하다. 좌표평면의 한 칸이 아니라 모서리를 저장해야 하므로 이런 식으로 윗면과 옆면을 따로 저장하기 위해 3차원 배열로 선언했다. class Solution { public int solution(String dirs) { int answer = 0; // 순서대로 UDLR // visited에 기록하기 위한 배열 int[] x1 = {-1, 0, 0, 0}; int[] y1 = {0, 0, ..