본문 바로가기
반응형

백준38

[Python] 백준 1002번: 터렛 한동안 학교 공부와 활동으로 인해 접었던 알고리즘 공부를 다시 시작한다. 코딩 재활을 시작하는 단계로 어릴적에 못풀어 실패 상태로 남긴 문제들을 하나씩 풀어본다. 그 중 하나인 '터렛'은 당시에 모든 경우를 찾는다는 생각으로 범위 내 좌표를 브루트포스할 멍청한 생각을 했었다. 하지만 잘 살펴보니 경우의 수는 0, 1, 2, 무한 밖에 없는 간단한 문제였다. 터렛의 좌표를 원의 중심, 터렛이 감지한 적의 거리를 반지름으로 두면 간단하게 풀 수 있다. 문제 조규현과 백승환은 터렛에 근무하는 직원이다. 하지만 워낙 존재감이 없어서 인구수는 차지하지 않는다. 다음은 조규현과 백승환의 사진이다. 이석원은 조규현과 백승환에게 상대편 마린(류재명)의 위치를 계산하라는 명령을 내렸다. 조규현과 백승환은 각각 자신의 터.. 2024. 4. 5.
[C] 백준 1003번: 피보나치 함수 언뜻 쉬워보이는 문제이지만 함정이다. 피보나치 함수를 그대로 줘서 마치 저걸 변형하면 되게 보이게 했지만 완전히 다른 방법으로 접근해야 한다. 문제 조건의 제한 시간은 0.25초. 시간복잡도 O(n)으로 맞춰야 풀 수 있다. 입출력 예시 정답코드 #include typedef struct fibo { int zero_count; int one_count; }FIBO; FIBO f[41] = { {0, 0} }; FIBO CountZeroOne(int); int main(){ int T; int i; int n; f[0].zero_count = 1; f[0].one_count = 0; f[1].zero_count = 0; f[1].one_count = 1; scanf("%d", &T); CountZeroO.. 2019. 3. 12.
[C] 백준 3273번: 두 수의 합 문제에 탐색, 정렬 알고리즘을 바로바로 적용시키는 연습을 한창 하고있다. 안한지 꽤 오래돼서 파악하는데 좀 걸린다. 이번 문제 역시 문제는 쉽지만 제한시간을 맞춰야하기 때문에 정렬과 탐색을 적절히 사용해야 한다. 나는 시간복잡도 O(n * log n)으로 했다. 입출력 예시 정답코드 #include #include void quickSort(int *, int, int); int inPlacePartition(int *, int, int, int); int search(int *, int, int); int main() { int n; int x; int *arr; int i; int tmp; int count = 0; scanf("%d", &n); arr = (int *)malloc(sizeof(int.. 2018. 10. 28.
[C] 백준 1620번: 나는야 포켓몬 마스터 이다솜 알고리즘 연습이 소홀해져서 오랜만에 백준을 풀다가 특이한 제목의 문제라서 한 번 시도했다가 꽤 오래 풀었다. 문제 자체는 쉬운데 시간제한을 맞춰줘야 하기 때문에 정렬과 탐색을 적절히 써야하는 문제다. 과도한 컨셉의 폐혜 입출력 예시 정답코드 #include #include #include struct pocketmon { char name[21]; int i; }; int isInteger(char *); int pocketmonSearch(struct pocketmon *, char *, int, int); void quickSort(struct pocketmon *, int, int); int inPlacePartition(struct pocketmon *, int, int, int); int mai.. 2018. 10. 26.
[C] 백준 13458번: 시험 감독 되게 오랜만에 백준을 풀고 쓰는 글이다. 방학의 휴식과 개인적인 일을 하다보니 공부가 소홀해졌다. 앞으로는 하루에 하나씩이라도 풀어나가야겠다. 시험 감독의 핵심은 연산 중에 총감독관의 할당량을 계산하고 음수가 되는 상황을 처리하는 것이다. 이것을 찾지 못하면 능구렁이에 빠진 것 마냥 문제를 해결하지 못할 수도 있다. 내가 그랬다. 그래서 인지 정답 비율도 낮다. 한 열흘간 굳어버린 나의 뇌를 깨우는데 좋은 문제였다. 입출력 예시 정답 코드 #include int main() { long long N; long long *A; long long B, C;// 총감독, 부감독 long long B_count = 0, C_count = 0; scanf("%lld", &N); A = new long long[N.. 2018. 8. 12.
[C] 백준 9012번: 괄호 문제 조건은 참 간단하다. 괄호 짝이 알맞게 지어져 있는지를 판별하는 것이다. 여는 괄호가 계속 누적 됐다가 나올 수도 있고 열렸다가 닫혔다가 반복할 수 있기 때문에 스택을 이용해 푸는 것이 가장 편하게 먹힌다고 생각한다. 시간이 나면 한 번 스택이 아닌 다른 방법으로도 풀어봐야겠다. 입출력 예시 정답 코드 #include char stack[50]; int top = 0; int isVPS(char *); void push(char); char pop(); int isEmpty(); int main() { int t; char str[51]; int i; scanf("%d", &t); for (i = 0; i < t; i++) { scanf("%s", str); if (isVPS(str)) printf.. 2018. 7. 29.
반응형