본문 바로가기

전체 글

(73)
백준 13171번: A 백준 13171번: A 13171번: A 음이 아닌 두 정수 A, X 가 있을 때 AX을 구하는 방법을 생각해보자. 물론 이 수는 매우 클 수 있기에, 1,000,000,007 (= 109 + 7)로 나눈 나머지를 구할 것이다. a mod x를 a를 x로 나눴을 때의 나머지라고 표현하면, (a × b) mod x = {(a mod x) × (b mod x)} mod x 가 성립하기 때문에, 어떤 두 정수를 1,000,000,007로 나눈 나머지만 알고 있어도 그 두 정수의 곱을 1,000,000 www.acmicpc.net 못풀어서 다른 사람들 블로그를 참조했다. 생각보다 엄청나게 간단한 코드였다. 이해안되는 부분이 있었는데 문제에서 잘 설명해주어서 알았다(...) 어떤 수를 x로 나눈 나머지는 더 작은..
백준 11066번: 파일 합치기 백준 11066번: 파일 합치기 11066번: 파일 합치기 문제 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본이 들어있는 한 개의 파일을 만든다. 이 과정에서 두 개의 파일을 합쳐서 하나의 임시파일을 만들고, 이 임시파일이나 원래의 파일을 계속 두 개씩 합쳐서 소설의 여러 장들이 연속이 되도록 파일을 합쳐나가고, 최종적으로는 하나의 파일로 합친다. 두 개의 파일을 www.acmicpc.net DP문제지만 정말 어려웠다. 문제를 오해하면 안되는게 소설이다보니까 페이지가 섞이면 안된다. 이거 모르면 평생 못풀 문제다. 그리고 각 파일을 합치는 과정을 구하기가..
백준 2565번: 전깃줄 백준 2565번: 전깃줄 2565번: 전깃줄 첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는 위치의 번호가 차례로 주어진다. 위치의 번호는 500 이하의 자연수이고, 같은 위치에 두 개 이상의 전깃줄이 연결될 수 없다. www.acmicpc.net 나는 풀이가 고민도 안될정도로 아무것도 떠오르지 않을때는 바로 답지를 보는편이다. 처음에 생각해 본것은 전깃줄을 없애는 방법과 없애고나서 그것을 어떻게 이용하여 최솟값을 찾는지에 대한 고민을 해봤지만 아무것도 생각나지 않았다. LIS문제라는 힌트를 얻어도 어떻게해야할지 모르겠다. 그래서 결국엔 답을 봤다. 전깃줄을 없애..
[프로그래머스] 베스트앨범 베스트앨범 문제 주소 코딩테스트 연습 - 베스트앨범 | 프로그래머스 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 play programmers.co.kr 시간을 꽤 오래들여서 해결한 문제이다. 문제의 조건이 매우 까다로워서 고려해야하는 것이 많다보니 작은 실수에도 원하는 답이 나오지않게된다. 조건을 살펴보..
[프로그래머스] 타겟 넘버 사이트 주소 코딩테스트 연습 - 타겟 넘버 | 프로그래머스 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘 programmers.co.kr 문제를 잘못이해해서 어렵게 풀었던 문제이다. 답을 보고 "엥? 왜 이렇게 풀지?"하다가 문제를 다시 읽어보고나서 깨닫고 다시 푸니 금방 풀 수 있는 문제였다. 숫..
백준 14890번: 경사로 백준 14890번: 경사로 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 단순 노가다로 풀었다. 다른 쉬운 방법이 있을 것 같지만 난 무식하게 행에 대한 연산과 열에 대한 연산을 진행했고, 조건 검사해야 하는 부분이 많아 코드가 엄청나게 길어졌다. 난 이렇게 문제를 풀었다. 1. 전과 같은 층일 때 같은 층 개수 카운터를 해준다. 2. 만약 다른 층일 경우 두가지를 본다 2-1. 두 층의 차가 1이 넘으면 이동할 수 없는 길이다. 2-2. 두 층의 차가 1이면 다음 3-1과 3-2를 확인한다. 3-1. 다음 층이 지금 층보다 높은가..
백준 12100번: 2048 (Easy) 백준 12100번: 2048 (Easy) 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2보다 크거나 같고, 1024보다 작거나 같은 2의 제곱꼴이다. 블록은 적어도 하나 주어진다. www.acmicpc.net 백준 문제 오랜만이다! 그동안 다른 것을 하느라 신경못썼는데 하루에 한문제씩이라도 다시 풀어야겠다. 오늘 푼 문제는 게임 시뮬레이션 문제다. Easy라고 적혀있지만 나에게 있어서 전혀 Easy하지 않은 문제였다. 어떤 게임을 기반으로 만들어진 문제인 것 같은데 난 이런류의 게임을 하지 않아서 머리속에 바로..
정보처리기사 필기 가채점 합격 사실상 벼락치기로 후다닥 기출문제 풀고 개념정리를 해서 간신히 커트라인을 넘긴거 같습니다. ㅋㅋㅋㅋㅋ 개념들을 다시 보면서 4년동안 배웠던것들이 새록새록 생각나기도하면서 또 학교에서 안배운 부분도 새롭게 공부했습니다. 다음에 있을 실기 시험도 준비하면서 예전 것을 복습해나가야겠습니다.