본문 바로가기

백준/[삼성 기출]14

[16637번] 괄호 추가하기 16637번: 괄호 추가하기 www.acmicpc.net 완전 탐색 문제로 연산자별로 우선순위가 없기 때문에 괄호를 추가한다 --> 연산자 우선순위를 정한다 라고 생각하고 풀면 된다. 풀이 방법은 1. 괄호의 개수를 선택 2. 괄호로 묶을 연산자를 선택 3. 괄호로 묶은 연산자 들에게 우선순위 부여 ( 앞에서 부터 순서대로 묶어 보기 때문에 순서에 의한 우선순위는 걱정하지 않아도 됨) 4. 정해진 연산자 우선순위를 통해 stack을 후위 표기식 계산 5. 최대값 갱신 #include #include #include #include #include using namespace std; int N, ans = INT_MIN; string input; vectoroper; int chk[10]; int cal.. 2020. 4. 4.
[16235번] 나무 재테크 16235번: 나무 재테크 www.acmicpc.net 시간제한이 0.3초로 꽤나 빡빡하다. 처음 접근은 3차원 벡터를 이용해서 각 위치(r,c)에 나무 정보를 저장해서 정렬을 하려고 했으나, 정렬이 반복되면 느릴꺼 같아서 정렬이 필요 없는 우선순위 큐를 사용하기로 했다. 1. 봄에 나이가 적은 순으로 양분을 흡수하기 때문에, 2차원 우선순위 큐를 이용해서 나무정보를 저장 2. 나무정보를 하나씩 뽑아서, 봄에 양분 흡수가능하면 다른 임시 우선순위 큐에 저장, 흡수가 불가능하면 죽은 나무의 나이/2를 death배열에 저장 3. 임시 우선순위 큐를 현 위치 나무정보를 가지고 있는 우선순위 큐에 복사 4. 여름에 death배열을 이용해 양분 업데이트 5. 가을에 8방 탐색을 통한 번식 6. 겨울에 양분 업데이.. 2020. 3. 1.
[17135번] 캐슬 디펜스 17135번: 캐슬 디펜스 www.acmicpc.net 삼성 SW역량테스트 A형 기출문제다. 시험 당시는 풀지 못했다. 탐색보단 구현 능력을 중요시 하는 문제같다. 입력을 보고 맵을 이용해서 풀이를 진행하는 경우가 많을 것이다. 나도 그렇게 풀었다. 의도한 방법은 적들의 위치를 리스트에 저장후 거리 별로 정렬 후 진행하는 것 같다. 나의 풀이 설계는 맵을 이용해서 시뮬레이션을 하듯 풀었다. 1. 각 궁수 위치를 조합을 통해 지정 2. 각 궁수 위치에서 왼쪽부터 가장 가까운 적을 체크 3. 모든 궁수의 적 체크가 끝났으면 적 카운트를 줄인다. 4. 궁수의 위치(행 인덱스)를 감소 적들을 하단으로 전진 시키는 것이 아니라, 궁수의 인덱스만 감소시키면서 맵은 따로 업데이트를 하지 않고 진행하였다. #inclu.. 2020. 2. 12.
[16985번] Maaaaaaaaaze 16985번: Maaaaaaaaaze www.acmicpc.net 5*5판 5개를 쌓고, 각 판을 회전 시키면서 cube[0][0][0] 에서 cube[4][4][4]로 갈수 있는 최소경로를 구하는 문제다. 조합 + 3차원 bfs문제다. 1. 각 판들을 쌓을 순서를 순열로 정한다. 2. 순서를 정했으면 각 판들을 회전시키면서 큐브를 만든다. 3. 큐브가 완성되었으면 bfs 주의할 점은 1. 각 판들을 순서를 바꿔서 쌓을수 있다. 2. 각 판들은 시계, 반시계 방향으로 자유롭게 회전가능 하지만 뒤집기는 안된다. #include #include #include #include #include #include #define min(a,b) a= 5 || c >= 5 || h >= 5)) return true;.. 2020. 2. 12.