본문 바로가기

전체 글46

[SWEA 5653] 줄기세포배양 문제 : 5653. [모의 SW 역량테스트] 줄기세포배양 [문제 출처] : SW Expert Academy [모의 SW 역량테스트] - 줄기세포배양 이번 문제를 구현하는 데에는 생각 없이 그냥 단순하게 구현할 수 있었다 다만 변수의 명명을 명확하게 하지 않아 실수해 시간을 조금 많이 썼다 대충 변수 이름을 지어버려 의도치 않게 다른 큐를 사용해 디버깅 하느라 아까운 시간을 날렸다.. 이번 문제 같은 경우는 차량 정비소 문제와 미생물 격리를 풀기 위해서 썼던 자료구조와 시간의 흐름을 코드로 구현하는 방법이 매우 비슷하다고 느꼈다 [문제 풀이] 이번 문제를 풀 때 격자 (board)에 대한 언급이 없고 "시뮬레이션에서 배양 용기의 크기는 무한하다고 가정한다." 라는 조건 때문에 격자를 쓰지 않고 풀어야 하나.. 2020. 6. 17.
Codeforces Round #650 (Div. 3) [Contests] : Codeforces Round #650 (Div. 3) 아주 오랜만에 코드포스 콘테스트를 치러봤다 역시나 초보.. 답게 2문제를 풀었다 11: 45분쯤에 들어가 10분 안되게 늦게 풀기 시작했다 1~2번은 항상 빠르게 풀린다 나만 그런 것이 아니고 나와 비슷한 레이팅에 있으신 분들은 모두 그러할 것이라 생각한다 언제쯤 실력이 늘것인지.. 또 어떻게 해야 실력이 느는지 답답하고 한심하다.. [A Short Substrings ] 이 문제는 단순한 문자열 관련 구현 문제이다. 다음 예시는 문제에서 주어진 예시이다 A = " abac " 라고 하자 첫 번째 인덱스부터 2개씩 끊어서 써보자 "ab", "ba", "ac" 이것을 이어 쓰게 되면 새로운 문자열 B = "abbaac" 로 쓸 .. 2020. 6. 17.
[프로그래머스] [1차] 프렌즈4블록 문제 : Level2 [1차] 프렌즈4블록 [ 문제 출처 ] https://programmers.co.kr/learn/courses/30/lessons/17679 [문제 출처] 이 문제는 단순하게 보드를 순회하면서 블록이 2×2 형태로 4개가 붙어있을 경우 사라지면서 점수를 얻는 게임이다 블록이 지워진 후에 위에 있는 블록이 아래로 떨어져 빈 공간을 채우게 된다 이 2가지를 구현하면 되는 문제이다 밑에 그림과 같이 단순한 4개의 블록은 그냥 지우고 4점을 획득 하면 된다. 하지만 다음 그림은 조금은 아주 조금은 복잡하다고 생각 할 수 있지만 전혀 아니다 1번을 바로 지워 버리게 되면 2번에서는 4개를 인식 하지 못하게 되므로 2번에서는 지울 수 가 없다 즉 4점밖에 획득 하지 못하게 된다 지울 경우 단.. 2020. 6. 10.
[프로그래머스] 기능개발 문제 : Level2 기능개발 [ 문제 출처 ] https://programmers.co.kr/learn/courses/30/lessons/42586 [ 문제풀이 ] 이 문제의 카테고리가 스택/큐였기에 한참 스택을 이용한 풀이를 생각했었지만 스택 또는 큐를 사용해서 풀 필요 가 없다는 것을 알고 반복문 한 개를 가지고 문제를 풀었다 풀이의 시간 복잡도는O(n)으로 풀었다 주어진 예시 문제를 보자! 작업의 진도 현황을 나타내는 배열 : [93, 30, 55] 각 작업의 개발 속도를 나타내는 배열 : [1, 30, 5] 주어진 배열들을 이용해서 주어진 작업이 앞으로 얼마나 걸릴 것인지를 간단한 연산을 통해서 알 수 있다 [(100 - 93) / 1, (100 - 30) / 30, (100 - 55) / 5].. 2020. 6. 10.
[SWEA 5644] 무선 충전 문제 : 5644. [모의 SW 역량테스트] 무선 충전 [문제 출처] : SW Expert Academy [모의 SW 역량테스트] - 차량 정비소 [문제 풀이] 이번 문제는 시뮬레이션 + 완전 탐색 문제이다 이동 시간에 따른 이동 정보 즉 경로가 주어진다 시간의 정보는 주어지지 않고 또한 문제를 푸는 데 있어서 중요하지 않으며 주어진 이동 경로에 맞게 이동하면서 2명의 사용자가 얻을 수 있는 충전한 양의 합의 최댓값을 구하는 문제이다 TMI) 문제에서는 무조건 2명의 사용자가 이동하면서 얻을 수 있는 충전한 양의 합의 최댓값을 구하는 것이지만 여러 명의 사용자가 사용하는 것으로 문제를 구성했다면 조금 더 어려운 문제이지 않았나 생각이 된다. 그러한 문제 또한 사용자의 제한 범위가 크지 않다면 완전 탐색으.. 2020. 6. 7.
[C++ STL] Priority_queue 사용법 본 글은 여러 PS 문제를 접하다 보면 우선순위 큐를 적극적으로 사용해야 되는 경우가 있는데 매번 구글링을 하게 되는 것 같아 우선순위 큐에 대한 기본적인 사용법뿐만 아니라 기본적인 자료형 외에 구조체나 클래스의 객체 타입을 우선순위 큐에 저장하려고 할 때 비교 함수의 재정의 및 연산자 오버 로딩을 통한 우선순위 설정(?) 하는 방법을 알아보려고 합니다. 1. Priority_queue 란? 기본적으로 C++에서 자주 쓰이는 vector와 같은 container adaptor의 한 종류이며 C++에서 int와 같은 기본자료형으로 우선순위 큐를 사용한다면 큐에 있는 모든 원소 중에서 가장 큰 값이 Top을 유지하도록, 우선순위가 가장 크도록 설계되어 있다 또한 우선순위 큐는 내부적으로 Heap이라는 자료구.. 2020. 6. 5.
[SWEA 2382] 미생물 격리 문제 :[모의 SW 역량테스트] - 미생물 격리 [문제 출처] : SW Expert Academy [모의 SW 역량테스트] - 미생물 격리 [문제풀이] 이 문제 역시 차량 정비소 문제 : https://kbj96.tistory.com/12?category=904725 와 같이 시뮬레이션 문제이다! 1시간 마다 미생물 군집들이 이동 하게 되는데 이동하면서 여러 가지 주어진 조건들을 처리하고 나서 m 시간 후에 특정상황 : 미생물 총 수 를 구하는 문제이다 개인적으로 BOJ 문제에서 유사한 문제를 풀어보았기 때문에 풀이를 생각해내고 코드를 짜는데 있어서는 큰 어려움은 없었지만 [ 유사 문제 ] : https://www.acmicpc.net/problem/17143 각 테스트케이스마다 미생물의 양을 표시해두는.. 2020. 6. 3.
[프로그래머스] 카드 게임 문제 : Level4 카드 게임 [ 문제출처 ] https://programmers.co.kr/learn/courses/30/lessons/42896 [ 문제풀이 ] 처음에 문제를 이해 하기를 문제에서 제시된 조건 1 부분에서 1. 언제든지 왼쪽 카드만 통에 버릴 수도 있고 왼쪽 카드와 오른쪽 카드를 둘 다 통에 버릴 수도 있다. 이때 얻는 점수는 없다 이 부분에서 이해가 가질 않았다 역시 국어를 못하니 문제를 빠르게 파악하지를 못하는 것 같다 ㅠㅠ 제시된 조건도 1과 2로 나누어 주었으면 좋지 않았나 싶기도 하다 얻는 점수가 없는 경우를 묶어서 조건으로 내민 것 같다 게임에서 가능한 경우를 보자 조건 : 어느쪽 더미든 카드가 없어질 때까지 1. 왼쪽 카드를 버리자 2. 왼쪽과 오른쪽 카드를 동시에 버리.. 2020. 6. 3.
[SWEA 2477] 차량 정비소 문제 : [모의 SW 역량테스트] - 차량 정비소 [문제 출처] : SW Expert Academy [모의 SW 역량테스트] - 차량 정비소 [문제풀이] 이 문제는 삼성 SW 모의 역량 테스트에서 많이 볼 수 있는 전형적인 시뮬레이션 문제이다 시뮬레이션 문제라고 하면은 대게 1초, 1시간 혹은 하루가 지나면서 달라지는 상황 등을 조건에 맞게 구현하는 문제이다 시뮬레이션 문제는 대게 비슷한 큰 틀을 갖는다 그렇기 때문에 여러 가지 비슷한 시뮬레이션 문제들을 풀다 보면 큰 틀은 다르지 않음을 알 수 있을 것이다 문제마다 처리해야 할 조건 혹은 구현에서 차이가 있을 뿐 큰 틀은 다르지 않다 그래서 여러 가지 상황의 문제들을 풀다 보면은 감을 잡을 수 있을 것이다!! BOJ에서 많은 시뮬레이션 문제들을 풀어 보.. 2020. 5. 25.