c++(10)
-
#1697 백준 숨바꼭질 코드 C++
1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 백준 1697번 숨바꼭질 문제이다. 백준에는 숨바꼭질 시리즈의 문제가 많은데, 이전 문제는 그리디, DP등 다양한 알고리즘으로 해결이 가능했다. 이 문제 역시 여러 해결 방안이 있지만 타겟 알고리즘은 너비우선탐색(BFS)이다. 문제에서 주어진 예시를 보면 수빈이의 위치는 5이고 동생의 위치는 17이다. 수빈이는 1초후에 위치-1, 위치+1, 위치*2 의 위치로 이동할 수 있다. 5의 경우, 4, 6, 10 으로 이동할 수 있는 것이다...
2021.07.20 -
#7662 백준 이중 우선순위 큐 C++
백준 7662 번 이중 우선순위 큐 문제이다. 우선순위 큐의 성질을 문제에 적용시킨 것인데, 우선순위 큐와 다른 것은 가장 큰 값과, 가장 작은 값이 모두 손쉽게 삭제가 가능 하다는 점이다. 이 문제에서 주어지는 k값의 범위가 10000정도만 되어도 list를 고려해 볼 수 있었지만, 범위가 넓은 관계로 다른 컨테이너를 사용해야한다. 여기서 사용할 수 있는 컨테이너는 map과 multiset을 사용할 수 있다. map을 사용하면, 첫 번째 인자는 값 자체를 넣어주고, 두 번째 인자는 값의 개수로 설정해서 동일한 key값이 삭제될 경우 두 번째 인자의 값을 줄이는 식의 풀이를 할 수 있다. multiset을 사용하면 key값의 개수를 일일이 줄여줄 필요가 없기 때문에 map으로 구현하는 것 보다 쉽게 구현..
2021.07.20 -
(TIL) 20210629
📕Facts(한 것) 백준 문제 풀기 프로그래머스 문제 풀기 C++ 책 읽으며 공부하기 스프링 복습 📕Feeling(느낀 점) #include #include #include #include #include using namespace std; bool solution(vector phone_book) { bool answer = true; sort(phone_book.begin(), phone_book.end()); smatch m; regex e; for(int i = 0; i < phone_book.size()-1; i++){ e = phone_book[i]; if(regex_search(phone_book[i+1], m, e) && (m.suffix().length() + m.length()) =..
2021.06.29 -
[알고리즘] 그리디 알고리즘/ 탐욕법 (Greedy algorithm)
📕그리디 알고리즘이란 ? 그리디 알고리즘은 코딩테스트에 자주 나오는 단골 문제이면서, 알고리즘 문제에 널리 사용되는 알고리즘이다. 그리디 알고리즘은 무엇일까? 그리디 알고리즘의 정의는 다음과 같이 말할 수 있다. "A greedy algorithm always makes the choice that looks best at the moment" 그리디 알고리즘은 '지금 당장 좋은 것을 고르는 방법'이다. 즉, 선택의 순간이 왔을 그때, 가장 좋은 것을 선택하는 것이다. ('Greedy'라는 이름을 보더라도 탐욕적인 것을 알 수 있다.) 📕 Greedy algorithm vs Dynamic programming 그리디 알고리즘과 다이나믹 프로그래밍을 언뜻 보면 비슷하다고 생각할 수 있다. 절차적으로 해결법..
2021.06.13 -
(TIL) 20210524
1.Facts(한 것) 백준 문제 풀기 HTML공부하기 학교 수업 듣기 swift 기본 문법 공부하기 2.Findings(배운 것) C++17에서는 라이브러리에서 최대공약수와 최소공배수를 위한 함수가 존재한다. gcd와 lcm이 바로 그것인데, 기존에는 gcd와 lcm을 재귀적으로 호출해서 구현해야 했던 반면, 이제는 단순히 함수 호출만으로 쉽게 문제를 풀 수 있게 되었다. swift 에서는 Optional이라는 변수가 있다. 값이 있을 수도 있고, 없을 수도 있다니... C에서는 값을 설정하지 않고 프린트를 하면 쓰레기 값을 출력하지만, Swift에서는 nil(없음)을 출력한다. 당연할지 모르는 말이지만, Optional 변수를 다른 변수에 할당할 수는 없다. 옵셔널 변수가 있을지 없을지 모르니까 말이..
2021.05.25 -
백준 #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