CS기초/알고리즘
-
[소프티어] - 교차로 C++CS기초/알고리즘 2022. 2. 7. 17:57
https://softeer.ai/practice/info.do?eventIdx=1&psProblemId=803 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 간단한 구현 문제였다. 처음에는 최소 시간과 최대시간 + 4 만큼 for문을 돌면서 해당 시간에 차가 지나갈 수 있다면 정답배열에 시간을 담아주는 식으로 하려고 했는데, 시간이 최대 10^9 (십억) 이라서 제한시간 2초에 걸려 시간초과가 났었다. 그래서 흠 이렇게 해서는 안되겠군 이라는 생각과 함께, 차가 안들어오는 시간대는 패쓰해야겠다는 생각이 들어 해당 코드를 추가시켜 주었더니 통과했다. 전반적인 로직은 아래와 같다. 1. A, B, C, D 교차로에 들어오는 차들을 큐에 담아주었다. 나중에 정답배열을 입..
-
소마 온라인 코딩테스트 1번 문제 복기CS기초/알고리즘 2020. 3. 15. 01:24
처음에 이렇게 거창하게 dfs 로 풀겠다고 설쳤다.. 아니근데 n 이 2이상 1000이하. 최소 획수를 가진 1만을 가진다 가정하면 최대 500자리가 된다. 이건 직접 숫자를 계산해서 비교하라는게 아닐 꺼라는 생각이 들었다. 잘못 접근하는 중이었다.. #include #include #define MAX 10 using namespace std; int arr[MAX]; // 0~9 까지 숫자의 획 수 int selected[501]; // 만들 수 있는 숫자 조합. n 이 최대 1000이고, 가장 적은 획수로 만들 수 있는 숫자 1의 획 수는 2이므로. 1000/2 = 500 이므로 최대 가능한 자리수는 500자리 long long max_num = 0; //최대 수 = 정답. void dfs(int ..