[백준] 23288번 주사위 굴리기 2 (C++)
·
알고리즘 문제 풀이/삼성 SW 역량 테스트
문제) https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net 설명) 시키는데로 순서대로 짜면 괜찮은 문제였다. 1) 주사위 굴러가기 알고리즘 2) 점수획득 알고리즘: BFS 3) 아랫면 비교, 방향결정 알고리즘 문제가 좀 길어서 자기 자신이 헷갈릴 경우가 많은 것 같은데, define을 사용해서 상수 이름을 결정해 놓으니 괜찮았다. 코드) #include using namespace std; #define X first #defin..
[HSAT 4회 정기 코딩 인증평가 기출] 슈퍼컴퓨터 클러스터 (C++)
·
카테고리 없음
문제)https://softeer.ai/practice/6252 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 풀이) 어떻게 보면 일반적인 이진탐색 문제인데, 문제 보고 떠올리기가 쉽지않았다. DP같기도 하고... 하지만 떠올리기만 하면 괜찮은 문제로 보인다. target을 컴퓨터들의 최소성능으로 잡고, mid값이 예산보다 작으면, target을 키워서 탐색. mid값이 예산보다 크면 , target값을 작게 잡고 탐색한다고 생각하고 풀었다. 코드) #include using namespace std; #define ll long long ll N, B; vector v; bool check(ll num) { ll sum = 0; for (int i = 0; i < v.size()..
소프티어 [HSAT 3회 정기 코딩 인증평가 기출] 교차로 (C++)
·
알고리즘 문제 풀이/SOFTEER
문제 ) https://softeer.ai/practice/6256 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 설명 ) 시뮬레이션의 문제..전체 입력을 q라는 이름의 q로 받고, 입력시간마다 꺼내서 각 도로에 맞는 A,B,C,D라는 이름의 큐에 push해주었다. 그리고 A,B,C,D의 큐가 비었는지 아닌지 여부에따라 행동 방식을 결정하였다. 첫번째 풀이가 시간초과가 나서 결국검색했는데, A,B,C,D 교차로가 비어있는 SKIP 해주는 방식으로 최적화를 하니 시간초과를 피할 수 있었다. A,B,C,D가 비어있는 경우, 현재 시간을 q 큐의 맨앞 차량의 시간으로 갱신해주면 도로가 비어있는 시간을 없앨 수 있다. 코드 ) #include #include #include #includ..
소프티어 [HSAT 2회 인증평가 기출] 사물인식 최소 면적 산출 프로그램 (C++)
·
알고리즘 문제 풀이/SOFTEER
문제) https://softeer.ai/practice/6277 풀이) dfs 를 이용한 백트래킹으로 모든 경우를 탐색하는 브루트포스를 사용했다. 각 색깔의 점을 하나씩 뽑아서 모든 점을 포함하는 사각형의 넓이 size를 만든다. 만약 size가 answer보다 크다면 그 루트는 이미 틀렸기 때문에 return 한다.(그냥 모든 경우 loop시 시간초과) #include using namespace std; int N, K; int answer = 4000001; vector v[21]; vector ans_x; vector ans_y; void dfs(int k){ if(k!=1) { int max_x = *max_element(ans_x.begin(), ans_x.end()); int max_y =..
[프로그래머스] LV2. 스킬트리 (C++)
·
알고리즘 문제 풀이/프로그래머스
문제: https://school.programmers.co.kr/learn/courses/30/lessons/49993?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 처음 떠오른 방법은 일일이 비교 하는 것... 하지만 그러면 skill_trees의 각 글자를 skill의 모든 글자를 순회해야되기때문에 시간이 길어질 것이라고 생각했다. 그래서 생각한 방법이 map에 skill의 각 글자의 순서를 등록후, skill_trees의 각 글자가 이에 해당하는지 확인하는 것이었다. check 변수를 선언해 skill 순서 대로 배..
[프로그래머스] LV2. 무인도 여행 (C++)
·
알고리즘 문제 풀이/프로그래머스
문제: https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: BFS 기본문제... 이어져있는 노드의 수를 모두 더해 answer에 추가해주는 방식으로 풀 수 있었다. 코드 : #include #include #include #include #include using namespace std; #define X first #define Y second // pair에서 first, second를 줄여서 쓰기 위해서 사용 int dx[4] = ..
[프로그래머스] LV2. 오픈채팅방 (C++)
·
알고리즘 문제 풀이/프로그래머스
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 뭔가 복잡해 보였지만 정리하면 구현할 내용이 단순했다. - MAP을 통해 유저 아이디와 닉네임을 맵핑: change나 enter 행동마다 갱신 - enter이나 leave 행동시에는 해당 동작과 유저 아이디를 저장하여 순서대로 저장. - 최종 맵핑된 닉네임을 유저아이디로 불러와 문자열을 저장하면 된다. #include #include #include #include using n..
[프로그래머스] LV3. 가장 먼 노드 (C++)
·
알고리즘 문제 풀이/프로그래머스
문제: https://school.programmers.co.kr/learn/courses/30/lessons/49189 풀이 : - BFS를 사용해 풀었으며, 양방향간선인데 각 간선은 [1,2], [3,2]처럼 순서 상관없이 주어졌으므로, 각 행의 0번 좌표와 1번좌표를 모두 찾아 이어진 노드를 찾을 필요가 있었다. - board 배열을 선언하여 1번노드로부터 떨어진 거리를 저장하도록 한다. - board 배열의 최댓값을 따로 저장하고, board를 순회하며 이값과 일치하는 횟수를 저장하여 출력한다. 코드 : #include #include #include #include #include using namespace std; int board[20002]; bool visit[20002]; queue ..
소프티어 [HSAT 5회 인증평가 기출] 성적 평가 (C++)
·
알고리즘 문제 풀이/SOFTEER
문제) https://softeer.ai/practice/6250 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 풀이) main 함수 1) 성적은 2차원 배열로 입력받는다. 이때 두개의 배열에 받는데, 하나의 배열은 정렬해서 사용하고, 하나는 답을 도출할때 쓸 일반 배열로 사용한다. 2) 배열의 4번째 행은 개인의 각 대회 점수의 총합으로 사용한다. check함수 1) check함수는 대회에서 개인의 점수가 몇등인지 를 map으로 만들어주는 함수이다. 2) 각 대회의 번호를 num, 각 대회의 map을 m의 매개변수로 받는다. 3) temp 변수에 정렬된 첫번째 점수값을 넣는다. map에 이 점수를 1로 맵핑한다. (1등) 4) 배열을 따라가며 temp값과 배열값이 다르다면, 이전..
다락공방
'분류 전체보기' 카테고리의 글 목록 (7 Page)