코딩/삼성 알고리즘 특강

[SWEA] 오리엔테이션 후기 + 1. 비트 연산

최선을 다하는 2022. 1. 18. 23:26

첫째날은 가벼운 오리엔테이션과 함께 건국대학교의 김성열 교수님이 프로그래밍에 대한 강의를 해주셨다. 되게 인상 깊은 강의였다. 특히 강의 중간에 교수님께서 다른 교수님께 컴퓨터과가 왜 대학교에 있어야 하는지 학원에서 6개월만 배우고 간 사람이랑 컴퓨터 과를 졸업한 사람이랑 하는일이 다른 것이 없지 않냐는 말을 들으셨다고 했다. 그때 교수님이 내린 결론은 컴퓨터과는 결과물을 내는 것이 쉬운 것이지 결과물 자체가 쉬운 것을 아니라고 하셨다. 생물학과는 6개월만 배워서는 큰 성과를 내지 못하지만 컴퓨터 프로그래밍은 조금만 배워도 결과가 바로바로 나오는 학문이라 그런 오해가 생길 수 있지만 결국 좋은 코드를 만드는 것은 부단한 노력이 필요한 일이라고 하셨다. 솔직히 나도 컴퓨터 공학과에 재학중이지만 요즘 많은 사람들이 개발 업종에 대한 관심이 높아지고 있기에 내가 이 사람들과 차별화 할 수 있는 점을 무엇일까 생각을 해보기도 했다. 교수님의 설명을 들으면서 내가 하고 있는 공부에 대한 확신을 더 얻은 것 같다.

 

교수님의 실시간 강의가 끝나고 이제부터 본격적인 SWEA 과정이 시작되었다. 각자 자율적으로 올라온 강의자료를 숙지한 후 주어진 연습 문제를 푸는 형식이였다. 

 

첫째날의 강의주제는 비트 연산이였다. 되게 기본적인 내용이라 강의 자체는 되게 쉽게 쉽게 넘어간 것 같은데 막상 문제들을 풀려고 하니 비트 마스킹을 잘 활용하지 않았다는 것을 느꼈다. 보통 프로그래밍 문제를 풀 때 한 원소를 선택하는 유형의 문제들은 int 배열을 선언하여 0 아니면 1의 값을 주며 사용하였다. 사실 메모리의 낭비가 되게 심하지만 내가 푼 대부분의 문제는 공간복잡도보다는 시간복잡도에 초점을 맞춘 문제였기 때문인지 int 배열을 사용하여도 큰 문제가 없었다. 그래서 비트 마스킹 문제는 많이 풀어보지 못하여서 되게 새롭게 다가왔다.