분류 전체보기 (44) 썸네일형 리스트형 백준 알고리즘 2580번 문제 : 스도쿠 https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 몇 몇 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈 칸을 채우는 방식은 다음과 같다. 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 굵은 선으로 구분되어 있는 3 www.acmicpc.net 문제는 백준 알고리즘 사이트에서 확인하세요 오늘 포스팅할 문제는 스도쿠 문제입니다 초등학생때 한번씩 풀어보셨죠?? 규칙은 간단합니다 좌우에.. C++ STL::Queue Queue는 상당히 유용한 자료구조 입니다 ㅋㅋ BFS, TSP, BACKTRACKING 등 참 많이 쓰여요. 저장한 순서대로 데이터를 사용해야한다면 가장 사용하기 적합한 자료구조입니다. 제가 써본 STL들의 특징이 있는데요. 인자값으로 const 값을 받는다는 것입니다. Java를 사용해보신분들은 겪어보신적이 있으시겠지만 가끔 의도치않게 레퍼런스 변수가 인자로 넘어가서 프로그램이 꼬이는 경우가 있습니다. 제가 써본 STL들은 값을 복사해가기 때문에 계속 같은 변수를 이용해 push함수를 호출해도 별 무리가 없었네요! 소스코드 신나게 짜놨더니 속에서 꼬여서 전부다 바꿔야한다면.. ㅂㄷㅂㄷ.. 이렇게 구조체를 선언하고 구조체를 원소로 갖는 queue를 만들수도 있습니다 ★ 자주 사용하는 메서드 ★ push.. 백준 알고리즘 1238 - 파티 https://www.acmicpc.net/problem/1238 1238번: 파티 문제 N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(1 ≤ Ti ≤ 100)의 시간을 소비한다. 각각의 학생들은 파티에 참석하기 위해 걸어가서 다시 그들의 마을로 돌아와야 한다. 하지만 이 학생들은 워낙 게을러서 최단 시간에 오고 가기를 원한다. 이 도로들은 단방향이기 때 www.acmicpc.net 문제는 백준 알고리즘 사이트에서 확인하세요~ 문제 분석 N개의 마을중에 X번째 마을에서 파티를 열면 모든 마을에 사람들이 X번째 마을로 왔다.. 백준 알고리즘 9869 - Milk Scheduling https://www.acmicpc.net/problem/9869 9869번: Milk Scheduling Farmer John has N cows that need to be milked (1 판단의 기준 즉 Deadline을 지키면서 판단기준에 맞도록 스케쥴하는것이 최적화된 해답과 가깝습니다~ Deadline은 어떻게 지킬 수 있을까요? 번호 DeadLine 1 3 2 2 3 2 4 2 예를 들어보았습니다 4개의 작업이 있고, 저마다 deadline이 존재합니다. 어떻게 deadline을 지킬 수 있는지 알아봅시다! 1 2 3 4 5 6 넉넉하게 스케쥴을 작성할 공간을 만들어 줍니다~ 번호순으로 스케쥴링을 하면 진행 번호 1 2 3 4 5 6 1 task1 2 task2 task1 앞이 비었음에도 불.. 백준 알고리즘 2573 - 빙산 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 나타내는 M개의 정수가 한 개의 빈 칸을 사이에 두고 주어진다. 각 칸에 들어가는 값은 0 이상 10 이하이다. 배열에서 빙산이 차지하는 칸의 개수, 즉, 1 이상의 정수가 들어가는 칸의 개수는 10,000 개 이하이다. 배열의 첫 번째 행과 열, 마지 www.acmicpc.net 문제는 백준 알고리즘 사이트에서 확인하세요~ 오늘 이야기할 문제는 그래프와 관련된 문제입니다. 빙하의 높이가 기록된 배열이 주어지고, 주어진.. C++ STL::Vector ★ 2차원 배열 전역변수로 선언하기 ★ 프로그램을 만들다보면 전역변수로 써야할 일이 많은데요. 아래와 같은 방법으로 간단히 만들 수 있습니다. M=vector(n,vector(n,0)); 에서 n이 두번 쓰였어요! 첫번째 n은 행의 개수이고, 두번째 n은 열의 개수입니다. 마지막 0은 생성한 vector의 원소값을 0으로 초기화한다는 의미입니다~ ★ 자주 사용하는 메서드 ★ resize(int n) n만큼 vector의 원소 개수를 만들고, 그 값을 0으로 초기화합니다. push_back(int n) n을 vector의 맨 마지막에 추가합니다. vector의 크기는 1 증가합니다. at(int index) vector 원소중 index번째 원소의 값을 반환합니다. [int index] at의 기능을 포함.. 알고리즘 설계 - 동적계획법 (Dynamic Programming) 제목은 거창하게 '설계법'이라 했습니다만~ 자세한 내용은 책을 읽어보시길 바래요! 문제를 동적계획해서 푼다는게 무슨 소리일까요? 예를 들어서 A라는 문제를 해결하는데 그 과정을 B, C, D, E, F, G 사건으로 세분화해서 표현할 수 있다고 가정하고 각 관계가 다음 그래프와 같다고 할게요. 그럼 이 문제를 컴퓨터로 코딩하기 위해 반복문을 쓸지 재귀를 쓸지 결정할 수 있습니다. 반복문을 수행하려니 for문에 for문을 계속 넣어야할것이고...? for문 밖으로 연산이 벗어나면 한번 사용하고 말 변수를 아주 많이 선언해야합니다. 비효율적이죠! 재귀를 수행하려니 E를 수행하기위해 C와 D를 수행할것이고 F를 수행하기위해 마찬가지로 C와 D를 수행해야하고 G를 수행하기위해 E와 F를 한번씩 더 수행해야합니다.. 백준 알고리즘 2655 - 가장 높은 탑 쌓기 https://www.acmicpc.net/problem/2655 2655번: 가장높은탑쌓기 첫째 줄에는 입력될 벽돌의 수가 주어진다. 입력으로 주어지는 벽돌의 수는 최대 100개이다. 둘째 줄부터는 각 줄에 한 개의 벽돌에 관한 정보인 벽돌 밑면의 넓이, 벽돌의 높이 그리고 무게가 차례대로 양의 정수로 주어진다. 각 벽돌은 입력되는 순서대로 1부터 연속적인 번호를 가진다. 벽돌의 넓이, 높이 무게는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제는 백준 알고리즘 사이트에서 확인하세요~ 오늘 다룰 문제는 조금 복잡합니다. 문제가 원하는 답은 '가장 높게 쌓은 탑'에 사용된 벽돌의 개수와 사용된 벽돌의 번호를 나열하는 것입니다! 복잡한 문제인 만큼 조건이 까다롭네요. 그 중에서 .. 이전 1 2 3 4 5 6 다음