전체 글 58

[백준 BOJ 15829번] Hashing(C / C++ ) [문자열,해싱]

15829번: Hashing (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 512MB 7997 2621 2251 33.693% 문제 APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정의한다. 해시 함수는 무궁무진한 응용 분야를 갖는데, 대표적으로 자료의 저장과 탐색에 쓰인다. 이 문제에서는 여러분이 앞으로 유용하게 쓸 수 있는 해시 함수를 하나 가르쳐주고자 한다. 먼저, 편의상 입력으로 들어오는 문자열에는 영문 소문자(a, b, ..., z)로만 구성되어있다고 가정하자. 영어에는 총 26개의 알파벳이 존재하므로 a에는 1, b에는..

백준 2021.05.02

[백준 BOJ 1181번] 단어 정렬(C / C++ ) [정렬]

1181번: 단어 정렬 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2초 256MB 53809 21852 16346 40.159% 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 예제 입력 1 13 but i wont hesitate no mor..

백준 2021.05.01

[백준 BOJ 11651번] 좌표 정렬하기 2(C / C++ ) [정렬, 우선순위큐]

11651번: 좌표 정렬하기 2 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 256MB 22979 15359 12974 68.959% 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 예제 입력 1 5 0 4 1 2 1 -1 2 2 3 3 예제 출력..

백준 2021.05.01

[백준 BOJ 2563번] 색종이(C / C++ ) [구현]

2563번: 색종이 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 128MB 9651 6789 5834 71.556% 문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변과 도화지의 왼쪽 변 사이의 거리이..

백준 2021.04.29

[백준 BOJ 1065번] 한수 (C / C++ ) [브루트포스 알고리즘]

1065번: 한수 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2초 128MB 70269 36597 31026 52.169% 문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 예제 입력 110 1 210 1000 예제 출력 99 1 105 144 풀이 등차수열(等差數列, 문화어: 같은차수렬, 영어: arithmetic pr..

백준 2021.04.24

[백준 BOJ 1436번] 영화감독 슘(C / C++ ) [브루트포스]

1436번: 영화감독 숌 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2초 128MB 31784 13955 11449 44.398% 문제 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조지 루카스와 피터 잭슨을 뛰어넘는다는 것을 보여주기 위해서 영화 제목을 좀 다르게..

백준 2021.04.24

[백준 BOJ 1330번] 두 수 비교하기 (C / C++ ) [수학, 구현]

1330번: 두 수 비교하기 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 512MB 125975 61381 53534 51.498% 문제 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. A와 B는 공백 한 칸으로 구분되어져 있다. 출력 첫째 줄에 다음 세 가지 중 하나를 출력한다. A가 B보다 큰 경우에는 '>'를 출력한다. A가 B보다 작은 경우에는 '

백준 2021.04.24

[백준 BOJ 2884번] 알람시계 (C / C++ ) [수학, 사칙연산]

2884번: 알람 시계 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 128MB 134544 50032 43935 39.082% 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 설정하기"이다. 이 방법은 단순하다. 원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 알람 소리를 들으면, 알람을 끄고 조금 더 잘 것이기 때문이다. 이 방법을 사용..

백준 2021.04.24

[백준 BOJ 10845번] 큐 (C / C++ ) [큐, 자료구조]

10845번: 큐 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 0.5초(추가시간x) 256MB 50918 24052 18560 49.166% 문제 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. back: 큐의 가장..

백준 2021.04.24

[백준 BOJ 11053번] 가장 긴 증가하는 부분 수열(C / C++ ) [다이나믹프로그래밍, DP]

11053번: 가장 긴 증가하는 부분 수열 (acmicpc.net) 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 256MB 71427 27463 18124 36.848% 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 예제 입력 6..

백준 2021.04.24