본문 바로가기

Algorithm

(2139)
(C++) - 백준(BOJ) 2896번 : 무알콜 칵테일 답 https://www.acmicpc.net/problem/2896 2896번: 무알콜 칵테일 문제 상근이와 지수는 마트에서 오렌지 주스, 사과 주스, 파인애플 주스를 구매했다. 그들은 인터넷에서 찾은 방법으로 무알콜 칵테일을 만들어 학교에서 팔려고 한다. 하지만, 칵테일을 만드는 www.acmicpc.net 소수점에 대한 처리를 물어보는 문제였습니다. c++에는 precision함수, c에는 printf("%.6f", a); 식으로 사용하여 자동으로 반올림하여 원하는 자리만큼 출력할 수 있습니다. 풀이방법 : 1. -0이 될 경우를 고려해 precision함수를 사용하였습니다. Code : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include #include using n..
(C++) - 백준(BOJ) 11866번 : 요세푸스 문제 0 https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 자료구조 queue를 이용해 구현하여 AC를 받았습니다. 풀이방법 : 1. 사람을 모두 제거할 때까지 loop를 돕니다. 2-1. 일정 순번(k)째가 되면 그때 queue를 pop한 후 출력합니다. 2-2. 일정 순번째가 아니면 queue의 가장 앞 원소를 가장 뒤쪽으로 옮겨줍니다. 3. 과 ,를 잘 출력해주도록 조절해줍니다. Code : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #inc..
(C++) - 백준(BOJ) 2562번 : ACM 호텔 답 https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 www.acmicpc.net int와 문자열의 형변환하는 것을 잘 처리해야되는 문제였습니다. 풀이방법 : 1.호텔 방 호수 : (n-1)/h + 1 //해당 값이 10보다 적을때는 '0'붙여줘야 합니다. 2.호텔 방 층수 : n%h //해당 값이 0이 나오면 가장 위층인 h로 층을 설정해야 합니다. Code : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include ..
(C++) - 프로그래머스(Programmers) : 입국심사 답 https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 � programmers.co.kr answer가 될 수 있는 최대 범위를 잘 정해야하는 이분탐색 문제였습니다. 절반 테케에서 시간초과가 계속나 2시간 날렸습니다.^^ 시간초과가 자꾸 뜰 경우 : 자료형의 범위를 초과할 경우 시간초과로 처리하는 것 같습니다. 이거 때문에 이분탐색 로직을 계속 고민하여 시간을 쓸데없이 버렸습니다. 풀이방법 : 걸리는 시간을 찾아야 되는 값이라고 상정한 후 그에 대..
(C++) - 프로그래머스(Programmers) : 예산 답 https://programmers.co.kr/learn/courses/30/lessons/43237 코딩테스트 연습 - 예산 국가의 역할 중 하나는 여러 지방의 예산요청을 심사하여 국가의 예산을 분배하는 것입니다. 국가예산의 총액은 미리 정해져 있어서 모든 예산요청을 배정해 주기는 어려울 수도 있습니다. 그�� programmers.co.kr 상한액을 잘 배정해야되는 이분탐색 문제였습니다. 풀이방법 : 다음과 같이 두가지의 경우로 나누어 해결했습니다. 1. 상한액을 배정할 필요가 없는 경우 : 즉 총 예산 M보다 budgets에 담긴 전체 예산이 더 적을 경우엔 budgets들 중 가장 큰 값을 반환합니다. 저의 경우 이 부분이 없어 계속 틀렸습니다. 2. 상한액을 이분탐색을 통해 배정해야되는 경우 :..
(C++) - 백준(BOJ) 1260번 : DFS와 BFS 답 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 기본적인 DFS와 BFS를 구현하는 문제였습니다. 풀이방법 : DFS : 정점 i에서 시작하여 그와 연결된 정점을 또다른 시작점으로 하는 재귀함수로 구현하였습니다. BFS : 정점 i에서 시작하여 그와 연결된 모든 정점을 그 노드 번호가 낮은 노드를 최우선순위로 탐방하도록 queue를 이용하여 작성하였습니다. 1 2 3 4 5 6 7 8 9 10 11 12 1..
(C++) - 백준(BOJ) 1259번 : 팰린드롬수 https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 문제 어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다. 수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 �� www.acmicpc.net 간단한 구현문제였습니다. 풀이방법: 문자열의 중앙을 기준으로 양옆을 확인해줌으로써 팰린드롬인지 확인할 수 있습니다. 양옆의 문자가 다르다면 팰린드롬이 아니므로 "no"를 출력합니다. 양옆의 문자가 모두 같다면 팰린드롬이므로 "yes"를 출력합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include #include using namesp..
(C++) - 백준(BOJ) 8979번 : 올림픽 https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 국가를 나타내는 정수와 이 국가가 얻은 금, 은, 동메달의 수가 빈칸을 사이에 두고 주어진다. 전체 메달 수의 총합은 1,000,000 이하이다. www.acmicpc.net 간단한 구현문제였습니다. 풀이방법 : 1. 금메달,은메달,동메달 마다 점수차이를 두어 총합점수를 나라별로 저장한다. 이때 각 메달의 점수 차이가 월등히 벌어지도록 한다. 또한 금메달 1개가 은메달 3개와 점수가 같은 상황히 발생하지..