728x90
반응형

구현 8

[HackerRank: Counting Valleys] (c++) (해커랭크)

[링크] www.hackerrank.com/challenges/counting-valleys/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=warmup Counting Valleys | HackerRank Count the valleys encountered during vacation. www.hackerrank.com [풀이] HackerRank Interview Preparation Kit의 두 번째 문제입니다. hiker가 지나온 길에 valley가 몇개 있었는지 세는 단순한 문제입니다. 문제 조건을 간단하게 설명하면 다음과 같습니다. A mountain is a sequence of..

[백준 20056: 마법사 상어와 파이어볼] (c++) [삼성 기출]

[링크] www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치� www.acmicpc.net [풀이] 2020 하반기 삼성 코딩 테스트 기출문제입니다. 2020-10-20 작성 중입니다. [소스 코드] #include #include using namespace std; using pii = pair; int dx[] = { -1,-1,0,1,1,1,0,-1 }; int dy[] = { 0,1,1,1,0,-1,-1,-1 }; struct fireball..

알고리즘/백준 2020.10.20

[백준 20058: 마법사 상어와 파이어스톰](c++)[삼성 기출]

[링크] www.acmicpc.net/problem/20058 20058번: 마법사 상어와 파이어스톰 마법사 상어는 파이어볼과 토네이도를 조합해 파이어스톰을 시전할 수 있다. 오늘은 파이어스톰을 크기가 2N × 2N인 격자로 나누어진 얼음판에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c� www.acmicpc.net [풀이] 2020 하반기 삼성 코딩 테스트 기출문제입니다. 문제 설명은 다음과 같습니다. 2^N X 2^N 크기인 지도를 2^L X 2^L 크기의 격자로 나누어 각 격자를 시계 방향으로 90도 회전한 뒤, 각 칸에 대해서 인접한 칸을 검사한 뒤, 인접한 칸들 중 1이 아닌 칸들의 개수가 2개 이상이라면 해당 칸에 저장된 값을 1 감소시켜야 합니다. 이 과정을 총 Q번 반복한 뒤, ..

알고리즘/백준 2020.10.20

[백준 20055: 컨베이어 벨트 위의 로봇](c++) [삼성 기출]

[링크] www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부�� www.acmicpc.net [풀이] 2020년 하반기 삼성 코딩 테스트 기출문제입니다. 움직이는 컨베이어 벨트 위에 로봇이 존재하고, 로봇이 벨트 위를 움직이며 벨트의 내구도를 감소시킵니다. 이때 내구도가 0인 벨트의 개수가 입력으로 주어진 K보다 크거나 같을 때까지 로봇을 옮기는 과정의 횟수를 출력하면 됩니다. 문제의 조건을 분석하면 다음과 같습니다. 길이가 2n인 컨베이어 벨트가 있다. 컨베이어 벨트..

알고리즘/백준 2020.10.20

[프로그래머스: 3진법 뒤집기] (c++) [구현] [Level 1]

[링크] programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr [풀이] 숫자 n을 3진법으로 변환한 뒤, 변환된 3진법을 반전시킨 다음 다시 10진법으로 계산하는 문제였습니다. 숫자 n을 k진법으로 변환할 수 있는지 확인하는 문제입니다. 1. 숫자 n을 k진법으로 변환하는 방법은 다음과 같습니다. 1) n을 k로 나눈 나머지를 k진법으로 변환한 숫자의 오른쪽부터 채워감 2) n을 k..

[백준 14499: 주사위 굴리기] (c++) [구현, 시뮬레이션]

[링크] www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net [풀이] 지도가 주어져있고, 해당 지도 위에서 주사위를 굴릴 때마다 주사위의 밑면의 값이 변경되고 매 순간마다 주사위의 윗면을 출력하면 되는 문제입니다. 문제의 조건에 따르면 풀이는 다음과 같이 생각할 수 있습니다. 0) 주사위 정의 이 풀이대로 문제를 풀기 위한 주사위의 모습을 다음과 같이 생각해 볼 수 있습니다. 동,서,북,남으로 주..

알고리즘/백준 2020.10.15

[프로그래머스: 같은 숫자는 싫어] (c++) [구현] [Level 1]

[링크] programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr [풀이] n이 최대 1,000,000이기 때문에 O(n)으로 문제를 풀었다. arr 벡터를 첫 원소부터 확인하면서 answer 벡터에 추가하는데, answer 벡터의 마지막 원소가 현재 확인하고 있는 원소랑 같은 원소면 추가하지 않고 continue하도록 구현했다. [참고] 벡터의 erase와 알고리즘 헤더에 존재하는 unique함수를 같이..

[프로그래머스: 두 개 뽑아서 더하기] (c++) [구현] [Level 1]

[링크] programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 programmers.co.kr [풀이] n이 최대 100인 numbers vector에서 두 수를 더해서 나올 수 있는 모든 값들을 반환하는 문제였다. 이중 for문을 이용하더라도 연산이 10000번 밖에 필요하지 않아서 간단하게 구현했다. 더한 값은 중복되지 않도록 가지고 있기 위해 set 자료형 변수에 저장했다. 그리고 set을 이용해 값을 저장할 경우 자동으로 오름차순으로 정렬되기 때문에 자연스럽게 문제의 조건대로 결과값을 저장할 수 있었다. [소스코드] #include #include #include using namespace std; vector solut..

728x90
반응형