본문 바로가기
2020년 회고 올 한해 놀긴 글렀으니까 최대한 빡세게 살고 내년에 놀자! 라는 마음가짐으로 2020년을 시작했다. 그래서 바쁘더라도 최대한 많은 것들을 이루기로 했다 근데 막상 지나고 보니, 놀기도 나름.. 잘 놀았고 또 이룬 것도 많았다 1. 1년동안 총 47학점을 들었다. 전체 성적은 4점대 어딘가이다 왜 이렇게 빡세게 들었는지는 모르지만... 내년부터는 컴과 전공을 주로 듣되 흥미가 간다면 전전 과목이나 수학과 과목을 조금씩 들어보려고 한다 2. 팀 MouthMouse에서 1년동안 함께했다. 큰 상도 4개나 탔고 그래서 지원도 많이 받았다. 여태까지 지원받은 거만 해도 얼마인지 생각해봐야겠다 ㅋㅋ 앞으로 졸업할 때 까지 이런 경험을 또 해볼 수 있을까... 싶은 경험도 많이 했다 근데 이 팀에 고마운 건 성과 때.. 2021. 1. 1.
미래에 대한 생각 커서 뭐하고 살지 고민하는 건 너무 질리는 일인데도 그만둘 수가 없다. 남들보다 진로에 대해서 빠르게 감을 잡은 건 확실한데 여전히 자주 미래에 대한 생각에 빠질 때가 많다. 올해도 그랬다. 근데 예전과 다른 점이라면 생각을 할 때 나를 방해하던 친구들(내신 공부같은 것들...)이 조금은 없어졌다는 것? 이 차이점을 통해 더 넓은 정보를 얻을 수 있었고 더 깊이 있는 고민을 할 수 있었다 근데 아직도 결론은 못 내렸다. ㅋㅋ 아래는 내 인생 얘긴데 이 글이랑은 관련 없다. 쓰다 보니까 나와서 주제에 안 맞길래 더보기에 넣었다. 더보기 맨 처음 컴퓨터를 왜 좋아하게 되었는지 떠올려보면 별 이유는 없었고 그냥 잘했다. 타자도 빨랐고 워드나 엑셀도 알려주는 대로 잘 받아먹고 초등학교 때 C도 봤다(물론 못했음.. 2020. 12. 31.
[BOJ #1700] 멀티탭 스케줄링 BOJ #1700, 멀티탭 스케줄링 문제입니다. 계속 알고리즘을 풀긴 풀었지만 귀찮은 탓에 블로그는 못 썼습니다. 학교 과제로 바쁘기도 하고, 역시 24학점은 아무나 듣는 게 아닌 것 같습니다. 다음 학기는 학점을 좀 널널하게 들으면서 편한 마음으로 학교를 다니기로 생각했습니다. 그러면서 겨울방학부터 군입대 전까지는 자기계발에 몰두하려고 합니다. 꽤 오랜 시간 고민했던 문제고, 그리디는 참 어렵습니다. 물론 이 문제의 그리디 판단 기준은 상당히 간단해서 해설을 본다면 누구나 바로 이해하겠지만, 꾹 참고 혼자 생각해 보느라 꽤 크게 돌아서 온 것 같습니다. 그리디는 구현이 어렵다기보단, 문제가 그리디로 풀린다는 사실을 인지하는 것이 정말 어렵습니다. 접근 일단 기본적으로 쉽게 생각할 수 있는 사실들을 떠올.. 2020. 11. 24.
[BOJ #5641] 겉보기에 쌍둥이 소수 BOJ #5641, 겉보기에 쌍둥이 소수 문제입니다. 작성시각 기준 푼 사람이 16명밖에 되지 않는 문제입니다만 그렇게 어렵지는 않았습니다. 입력으로 n과 t가 주어지면 n자리 겉보기에 쌍둥이 소수를 '아무거나' 출력하면 됩니다. 그런데 3500 2020. 8. 4.
[BOJ #1629] 곱셈 BOJ #1629, 곱셈 문제입니다. 문제의 이름과는 다르게 정답률이 낮고 살짝은 까다로울 수 있는 문제입니다. 이 문제는 분할정복법으로 풀게 되며(Divide & Conquer), 따라서 재귀를 사용합니다. 또 (A * B) % C == ((A % C) * (B % C)) % C임을 알고 있어야 합니다. 저는 처음에 이 공식을 몰랐으나 아주 예전 BOJ #10430, 나머지 문제를 푼 것이 기억나 사용하게 되었습니다. 추가적으로 분할정복만으로는 시간 초과가 떠서 메모이제이션(memoization)까지 사용하였습니다. 1. main에서의 array for memoization 생성 int cnt = 0; int main(void) { int A, B, C; scanf("%d %d %d", &A, &B, .. 2020. 8. 2.
[BOJ #1051] 숫자 정사각형 BOJ #1051, 숫자 정사각형 문제입니다. 입력 범위를 general하게 바라보면 계산량이 좀 많습니다만 입력 범위가 매우 작아서(N, M M) ? N : M; for (int side = max; side >= 2; side--) { for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { if (!(i + side - 1 < N && j + side - 1 < M)) continue; else { if (isItSquare(matrix, i, j, side)) return side; } } } } return 1; } int main(void) { int N, M; scanf("%d %d", &N, &M); int** matrix = (int**).. 2020. 7. 31.