[백준] | C++ | 2239. 스도쿠 (사진 설명 포함)
·
알고리즘/C++
개요갑자기 왜 안쓰던 알고리즘 풀이를 쓰느냐 묻는다면 그냥 이번 문제 풀이가 깔끔했고 잘풀었기 때문입니다. 참고로 이번 문제 2239. 스도쿠는 11월에 푼 문제에요. 일자를 보면 G-STAR랑 겹치죠? 실제로 그 당시까지 1일 1백준을 지키기 위해 숙소에서 열심히 풀었습니다.다음 날 숙소에서 앓아 눕지만 않았어도 스트릭이 깨질일은 없었을거에요.   문제스도쿠는 매우 간단한 숫자 퍼즐이다. 9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9개의 3×3 크기의 보드에 1부터 9까지의 숫자가 중복 없이 나타나도록 보드를 채우면 된다. 예를 들어 다음을 보자. 위 그림은 참 잘도 스도쿠 퍼즐을 푼 경우이다. 각 행에 1부터 9까지의 숫자가 중복 없이 나오고, 각 열에 1부터 9까지의 숫자가 중복 없이..
[백준] | 골드5 달성!
·
알고리즘/C++
1일 1백준은 잘 지켜지는 중입니다...
[백준] | C++ | 2869. 달팽이는 올라가고 싶다
·
알고리즘/C++
개요 이제 실버2 입니다. 백준을 처음 풀때는 몰라도 친구에게 solved.ac 를 전수받고 난 뒤에는 '단계별로 풀어보기' 를 사용하기보단 그냥 나에게 맞다고 생각되는 티어의 분류에서 적당한 문제를 골라 풀었는데 이거 상당히 물건입니다, 뇌를 짜내야하는 실버 4 이상의 문제가 아닌 적당히 뇌를 쓸 수 있고 피로가 덜한 문제들을 풀 수 있었습니다. 이제 solved.ac 에서 하남자처럼 문제 안 골라도 됩니다. 그래서 오늘 풀 문제는 '일반 수학 1' 의 마지막 문제, 2869. 달팽이는 올라가고 싶다 입니다. 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간..
[백준] | C++ | 7785. 회사에 있는 사람
·
알고리즘/C++
개요실버2가 코앞입니다.그래서 오늘 풀 문제는 7785. 회사에 있는 사람 입니다. 문제 난이도는...실버 5입니다.저번 글까지는 실버3 문제를 풀던 내가 어째서 실버5 문제를 풀고있어야 하는지는 잘 모르겠지만 아무생각없이 하루 1번 백준 문제 풀기를 하던 중 만만해보여서 물고온 문제가 새로운 알고리즘 분류인'해시를 사용한 집합과 맵' 을 같이 갖고왔기 때문입니다.     문제상근이는 세계적인 소프트웨어 회사 기글에서 일한다. 이 회사의 가장 큰 특징은 자유로운 출퇴근 시간이다. 따라서, 직원들은 반드시 9시부터 6시까지 회사에 있지 않아도 된다. 각 직원은 자기가 원할 때 출근할 수 있고, 아무때나 퇴근할 수 있다. 상근이는 모든 사람의 출입카드 시스템의 로그를 가지고 있다. 이 로그는 어떤 사람이 회..
[백준] | C++ | 9461. 파도반 수열
·
알고리즘/C++
개요 실버3 을 달았습니다 . 수학 시간에 수학적 귀납법을 배워보니 다이나믹 프로그래밍(DP)과 굉장히 유사하다는 점을 깨달았습니다. 뇌가 한단계 진화했어요! 몇몇 DP 날먹 문제를 풀어보며 감을 잡아봤는데 조금 더 심화된 DP를 풀어보고 싶었습니다. 문제의 정답 꼴은 다 비슷하겠지만 오늘 풀어볼 문제는 친구의 추천인 9461. 파도반 수열 입니다. 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 ..
[백준] | C++ | 1463. 1로 만들기
·
알고리즘/C++
개요 실버 4 를 달았습니다. 실버 4 를 달면서 C++을 대충 맛봤는데 세상에 C#보다 몇배는 빠릅니다!!! 알고리즘은 C#으로 풀면 안돼요.. 저번 글은 4673. 셀프 넘버를 풀었었는데 실버 5 따리 개 쉬운 문제였더라구요. 그런 의미로 실버 4 도 달았겠다 이번 글은 1463. 1로 만들기 라는 실버 3 문제를 풀어보도록 하겠습니다. 문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 문제가 짧습니다. 하지만 딱봐도 어려워 보이는군요... 알고리즘 분..