전체 글(408)
-
백준 #1158 요세푸스 문제 c++
백준 1158번 요세푸스 문제이다. 이 문제는 이해하기만 하면 원형큐를 활용해서 구현하는데는 크게 어렵지 않다. 7 3을 입력 받았다면 1 2 3 4 5 6 7 에서 항상 세번째 숫자를 제거하는 것이다. 원형큐이기 때문에 세번째 숫자인 3을 제거하면 다음에 오는 세번째 숫자는 4 5 6 7 1 2 중에서 6이 될것이고 6이 제거된 그 다음에는 7 1 2 4 5 중에서는 2가 될것이다. 위의 과정을 큐가 빌때까지 진행하면 된다. 아래는 C++로 구현한 코드 전문이다. #include #include using namespace std; queue q; queue temp; int main() { int n; int k; scanf("%d %d", &n, &k); for(int i = 1; i
2021.05.03 -
(주간회고) 5월 1주차 주간회고
1.Facts(한 것) 백준 문제풀기 프로그래머스 문제풀기 짝 프로그래밍 매일 2시간 운동 서울에서 집으로 2.Findings(배운 것) "자료구조도 부족한데..." 이번 주에 문제를 풀면서 많이 느낀 것은 알고리즘 자체도 부족하지만, 자료구조 활용능력이 많이 떨어진다는 점이다. 자료구조 수업을 들으면서, 각각의 자료구조가 어떠한 특성을 가지고 있는지, 왜 이런지는 다 알고 있지만 이를 언제 적재적소에 활용해야하는지에 대한 감각은 전무한 수준. (문제를 많이 푸는 것 만이 유일한 해결 방법이라는 것이 오히려 좋아...) 3.Feeling(느낀점) 한 영상을 보고 이렇게 느꼈다. '어제 가진 돈 보다 오늘 가진 돈을 더 많게 하는게 부자가 되는 길이라면 똑똑해지는 방법 역시 어제보다 오늘의 내가 더 많이 ..
2021.05.03 -
(TIL) 20210502
1.Facts(한 것) 백준 문제 풀기 짝 프로그래밍(매일 해왔었던) 하체, 어깨 운동 학교 강의 듣기 2.Findings(배운 것) "리스트는 편한 자료구조다" 스택으로 구현하면 이리저리 반복을 해야 하는 문제지만, 리스트의 경우 인덱스 사이에 새로운 값이 추가가 가능하기 때문에 인덱스로 고민해야 하는 문제라면 리스트를 활용하도록 하자. 자료구조 배울 때 특징들을 배우고 그걸 C로 구현해서 그런지 아직까지 활용이 잘 안 되는 느낌이다. 문제를 많이 풀면서 보완해야 할 것 같다. 3.Feeling(느낀 점) 카카오 코딩 테스트는 다가오는데, 해야 하는 과제도 있고, 학교 수업은 왜 자꾸 올라오며 왜 강의시간은 죄다 2시간에 육박하는지 알다가도 모르겠다.(좀 잘라서 올려주시지) 채용공고를 보다 보면 ios..
2021.05.03 -
백준 #1406 에디터 c++
백준 1406번 에디터 문제이다. 레벨은 실버3. 일단 분류가 알고리즘상 스택으로 분류가 되어있다. 하지만 스택으로 풀면 조금 귀찮은 부분이 없지 않고, 리스트로 풀면 가장 간단한데, 그 이유인 즉, 스택은 인덱스 수정을 하려면 그 과정이 복잡하지만 리스트는 중간 삽입이 손쉽게 가능하기 때문이다. //list.insert(iter, k); //list.erase(iter); 리스트의 경우 위와 같은 코드를 활용해서 P $ 와 D 명령어를 쉽게 구현할 수 있다. 스택으로 구현하는 방법을 생각해보자. 스택은 특성상, Push를 할 경우 가장 위쪽에 추가가 되고, pop을 해도 가장 위쪽 값이 사라지며 값 반환 역시 가장 위에 있는 값 밖에 되지 않는다. 그렇기 때문에 기존의 스택 말고, 다른 스택을 정의해서..
2021.05.02 -
(TIL) 20010501
1.Facts(한것) 백준 문제풀기 오랜만에 집에서 차 마시기 짝프로그래밍(매일 해왔었던) 등, 삼두, 복근 운동 2.Findings(배운것) "풀이방법 정리" 오늘 푼 문제도 스택을 활용한 문제였다. (여러개 중 하나.) 하지만 이 문제의 핵심은 스택이 아니라 오히려 for와 while의 적절한 사용이었다. 역시 기본 문법만 잘 알아도 절반은 간다는 말이 틀린말이 아니다. 그렇다고 for랑 while을 못쓰나? 라고 자문한다면 또 그건 아닌거 같다. 그래서 오늘 배운것은 머릿속에 있는 풀이방법을 주석으로 적어둔 후 그대로 구현하는 방법이 가장 빠른 방법이라는 것이다. 문제를 해결하는 도중, 생각했던 풀이방법을 잊어 먹을 수도 있고, 어떻게 변수를 선언할지 잊는 경우도 있기 때문에 이러한 방법이 중요할 ..
2021.05.02 -
백준 #9012번 괄호 c++
백준 9012번 괄호 문제이다. 실버4의 문제. 스택의 활용 정도 되는 문제이다. 스택의 기본구조인 선입후출의 개념과 stack.empty(), stack.top() 등의 개념을 활용하여 풀 수 있는 문제이다. 이 문제의 핵심은 닫는 괄호 ')' 의 짝이 있는가를 찾는 것이다. 처음부터 닫는 괄호가 들어오면 당연히 NO를 반환해야 하는것이고 닫는 괄호와 여는 괄호의 갯수가 같아도, 짝이 맞지 않으면 해결할 수 없다. 아래의 코드를 살펴보자. #include #include #include using namespace std; int main() { int testcase; cin >> testcase; // 몇 번 돌지 입력받음 while(testcase--) { stack st; string s; ci..
2021.05.01