coding_test/programmers

coding_test/programmers

lv1 / [1차] 비밀지도 / 카카오 기출 / C++

https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나뉘어진 두개의 지도를 합치기만 하면 되는 문제이다. 문제에서도 나와있지만, 두 지도에서 같은 칸에 하나라도 벽이 있다면, 벽이 있다는 뜻이라고 한다. 즉, 그냥 bitwise OR연산을 진행하면 된다. 각 배열의 요소를 모두 OR연산을 진행한 후에, 이를 2진수로 바꾸고, 0과 1을 각각 공백과 #으로 바꿔주면 된다. 이번 문제를 통해 비트를 다룰때 쓰기 좋은 bitset STL을 알게 되었다...

coding_test/programmers

lv1 / 실패율 / 카카오 기출 / C++

https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그냥 단순히, 모든 실패율을 다 구하고, 그 실패율을 통해 정렬하면 되는 문제. 다만, 실패율이 같으면 작은 순서가 유지되어야 해서, 안정정렬을 사용했다. #include using namespace std; vector solution(int N, vector stages) { vector answer; vector ratio(N); int l = 0, r = 0, prev; sort(stage..

coding_test/programmers

lv2 / 거리두기 확인하기 / 카카오 기출 / C++

https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그냥 처음 봤을때 bfs라는 느낌이 강하게 들어서, 그대로 bfs로 풀이했다. 이때, 우리는 거리가 2를 넘어간다면, 궁금해할 필요가 없기 때문에, 거리가 2 이하인 노드에서만 탐색을 진행했다. #include using namespace std; int bfs(vector& board, int x, int y) { queue q; bool visit[5][5] = {false}; int dist..

coding_test/programmers

lv1 / 크레인 인형 뽑기 게임 / 카카오 기출 / C++

https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 입력받은 board를 스택벡터로 다시 재구성하여, 맨 위에서부터 인형을 가져가기 용이하게 board를 재구성했다. 이후, moves에서 움직이라는대로 움직이며, 바구니에 인형을 담아보고, 맨 위의 인형과 담을 인형이 같으면 터뜨리고 2를 더하면 된다. 자꾸 1만 더해서 왜 틀렸지 했었다....ㅎㅎ #include #include #include using namespace std; int solu..

coding_test/programmers

lv1 / 키패드 누르기 / 카카오 기출 / C++

https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 거리를 어떻게 따져야 할지가 정말 고민이어서, "그래프를 작성하고 최단거리 알고리즘을 돌려야 하나" 라고 생각할 정도로 생각을 많이 했었는데, 생각해보니까 *, 0, #을 각각 10, 11, 12로 생각해보니까, 거리를 구하는 방법이 떠올랐다. 1 2 3 4 5 6 7 8 9 10(*) 11(0) 12(#) 키패드가 다음과 같이 구성되어있으므로, 두 번호간의 거리는, (두 번호의 y축방향 차이) ..

coding_test/programmers

lv2 / 문자열 압축 / 카카오 기출 / C++

https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1개 단위부터 시작하여 s의 절반길이만큼의 단위로 자를때 압축된 문자열의 길이들의 최소값을 구한다. 절반의 길이를 넘어가면 압축되지 않기 때문이다. s가 한글자일때 에러가 났었는데(검증 테스트 케이스 5번), 글자가 한글자라면 반복문을 돌지 않고 바로 answer값을 반환하는데, 이때 최솟값을 구해야 하기 때문에 answer에 담긴 큰 수가 반환되었다. 따라서 s가 한글자일때는 예외로 처리했다. ..

coding_test/programmers

lv1 / 소수 만들기 / C++

https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 에라토스테네스의 체를 만들고, 순열을 통해 주어진 숫자중 3개를 뽑아 그 세 수의 합이 소수인지 파악하면 된다. #include #include #define LEN 50001 using namespace std; bool seive[LEN]; void set_seive () { fill(seive, seive + LEN, true); sei..

coding_test/programmers

lv1 / 신고 결과 받기 / 카카오 기출 / C++, Python

https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 한 유저가 같은 유저를 여러번 신고했다면 report 벡터에는 같은 문자열이 여러개 들어있다는 뜻이다. 이를 알아냈다면 단순히 report벡터를 사용하기 전에 중복을 제거해주면 된다. 이후로는 신고 당한 횟수를 세고, 그 횟수가 k보다 많으면 메일을 날리면 되니까 이를 순서대로 하면 된다. #include #include #include #include ..

CodeJin
'coding_test/programmers' 카테고리의 글 목록 (2 Page)