분류 전체보기 33

2753번 윤년

문제 출처 : https://www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다. www.acmicpc.net 풀이 과정 문제에 적혀있는 윤년 규칙을 이용하여 문제를 해결했습니다. 4의 배수가 아닌 경우를 제외한 윤년이 되는 규칙은 다음과 같습니다. 소스 코드 더보기 1 2 3 4 5 6 7 8 9 10 11 12 ..

1302번 베스트셀러

문제 출처 : https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 풀이 과정 책의 제목이 중복으로 입력될 수 있고, 책의 팔린 횟수를 세야 하는 문제였기 때문에 string을 key로 하여 map을 사용했습니다. 1. 책의 제목을 입력으로 받을 때마다 횟수를 증가시켰습니다. 2. map은 default로 key 값을 기준으로 데이터를 오름차순으로 정렬하기 때문에 반복자를 사용하여 앞에서부터 가장 많이 팔린..

에라토스테네스의 체 알고리즘

에라토스테네스의 체는 자연수에서 소수를 찾아내는 방법입니다. 소수란 약수가 1과 자기 자신뿐인 자연수를 말합니다. (1은 제외) 에라토스테네스의 체 알고리즘은 다음과 같습니다. 1) 1은 소수에서 제외되므로 2부터 소수인 수를 찾는다. 2) 2(P=2)가 소수이므로 2의 배수 2,4,6,8, ...를 전부 제외한다. 3) 다음 소수인 3(P=2)의 배수 3,6,9, ...를 전부 제외한다. 4) 다음 소수인 5(P=2)의 배수 5,10,15,20, ...를 전부 제외한다. 5) 이 방법을 계속해서 반복한다. (2부터 N까지의 숫자 중에서 에라토스테네스의 체로 소수를 찾을 때, P의 제곱이 N보다 커질 때까지 반복하면 된다.)

알고리즘 2020.04.12

visual studio 폰트 변경, 추가하기

개발할 때 Consolas 폰트를 쓰다가 이번에 네이버에서 제공하는 D2coding 폰트를 알게 되어 사용하게 되었습니다. 가독성을 높여줘서 개발 시에 유용하다고 하네요. Visual Studio에서 폰트 설치 및 적용하는 방법을 알아보겠습니다. D2codingfont 다운로드 링크 https://github.com/naver/d2codingfont naver/d2codingfont D2 Coding 글꼴. Contribute to naver/d2codingfont development by creating an account on GitHub. github.com 폰트 설치 1. 사용할 폰트 파일을 오른쪽 마우스 클릭 후 설치를 클릭하시면 알아서 폰트가 설치됩니다. 트루타입 컬렉션 글꼴은 기본 버전과 ..

기타 2019.12.24

2884번 알람 시계

문제 출처 : https://www.acmicpc.net/problem/2884 2884번: 알람 시계 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 맞추기"이다. 이 방법은 단순하다. 원래 맞춰져있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 www.acmicpc.net 풀이 과정 문제 설명에 나와있듯이 단순 구현 문제로, 현재 시간에서 45분 이른 시간을 구하면 되는 문제입니다. 계산하기..

11286번 절댓값 힙

문제 출처 : https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 절댓값이 가장 작은 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되는 정수는 -231보다 크고, 231보다 작다. www.acmicpc.net 풀이 과정 STL의 priority_queue에 functor를 구현해서 문제를 해결했습니다. 절댓값의 크기가 다른 경우에는 절댓값을 기준으로 오름차순으로 정렬하고, 절댓값의 크기가 같은 경우에는 절댓값을 씌우지 않은 값을 ..

1238번 파티

백준 온라인 저지 1238번 파티 문제 출처 : https://www.acmicpc.net/problem/1238 1238번: 파티 문제 N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(1 ≤ Ti ≤ 100)의 시간을 소비한다. 각각의 학생들은 파티에 참석하기 위해 걸어가서 다시 그들의 마을로 돌아와야 한다. 하지만 이 학생들은 워낙 게을러서 최단 시간에 오고 가기를 원한다. 이 도로들은 단방향이기 때 www.acmicpc.net 풀이 과정 처음 문제를 읽고 최단경로를 구하는 알고리즘이라고 판단했고 가장 쉽게 구현할 수 ..

3062번 수 뒤집기

백준 온라인 저지 3062번 수 뒤집기 문제 출처 : https://www.acmicpc.net/problem/3062 3062번: 수 뒤집기 수 124를 뒤집으면 421이 되고 이 두 수를 합하면 545가 된다. 124와 같이 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되는지 테스트 하는 프로그램을 작성하시오. www.acmicpc.net 풀이 과정 문자열을 입력받고 뒤집어 줍니다. 문자열을 정수로 변환해주는 atoi 함수를 사용하여 합을 구해줍니다. 이때 atoi 함수는 string이 아닌 char*을 매개변수로 받기 때문에 c_str() 함수를 사용하여 char*로 변환해야 합니다. to_string함수를 사용하여 정수를 문자열로 다시 바꿔준 후 반복문을 통해 문자열의 앞과 뒤를 비교하여 같은지..