반응형

알고리즘/백준 94

백준 2108 통계학 c++ [컴공과고씨]

https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 산술 평균은 처음에 float를 썼는데 오류가 나서 double로 바꿔주니 잘 되었다. double 훨씬 더 정확하기 때문에 정확성 문제로 오류를 발생 시키는 것 같았다. 중앙값은 그냥 sort해서 (n-1) 후 2로 나눠주면 나왔고 범위도 마찬가지로 sort 후 최대 - 최소 해주면 쉽게 나왔다. 최빈값 같은 경우 처음에 문제를 제대로 읽지 않아 "정수의 절댓값은 4,000을 넘지 않는다" 이 부분을 놓쳐 조..

알고리즘/백준 2022.03.12

백준 1259 랜선 자르기 c++ [컴공과고씨]

https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 처음 생각했던 방법은 전부 랜선을 합쳐서 k개의 랜선으로 나눈 후 나온 값을 이용해 각 랜선의 길이 만큼 비교하여 조건에 맞을 때까지 1씩 줄여가는 방법을 써보았지만 당연히 시간초과에 걸렸다. 그래서 시간을 줄이기 위해 이분 탐색을 이용하여 반 씩 나누어 가며 잘라야할 길이를 찾음. 사용 알고리즘 : 이분탐색 yea!

알고리즘/백준 2022.03.11

백준 1181 단어정렬 c++ [컴공과고씨]

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 문자열 길이가 50이 넘지 않는다를 보고 생각한 것은 그럼 크기 50짜리 벡터 배열 만들어서 길이에 따라 저장해주는 것을 생각 예를 들면 이런 식으로 1번에는 길이가 1인 문자를 넣어주고 2에는 길이가 2인 문자열만 넣어주는 방법. 그런 후 벡터 sort를 이용하여 각 배열안에 있는 벡터들을 사전순으로 정리 후 중복되는 단어들을 제거 해줌. 그 후 순서대로 출력해주면 단어가 정렬 되어짐..

알고리즘/백준 2022.03.11

백준 1018 체스판 다시 칠하기 c++ [컴공과고씨]

https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 보고 일단 w로 시작하는 정답 1개 b로 시작 하는 정답 1개로 나눌 수 있다고 생각함. ex) wbwbwbwbwb , bwbwbwbwb 이런식으로. 그리고 입력으로 받은 체스판에서 위 정답과 하나씩 비교하여 틀린 만큼 카운트를 한 후 2정답 중 최소 값을 저장하는 방식으로 구성해야 겠다는 생각으로 코드를 만듬. 만든 코드

알고리즘/백준 2022.03.11
반응형