목록2024/01 (54)
Machineboy空
https://www.acmicpc.net/problem/2559 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net 문제 요약 n개 범위의 구간 합 중 최대값을 출력 난이도 Silver 3 풀이 구간합(prefix sum) 최댓값 갱신 슬라이딩 윈도우 REVIEW 단순하게 중첩 for문으로 시작점으로부터 N개의 원소를 더해 vector에 push_back()했더니 메모리 초과. vector형이 문제인가 싶어 int 배열로 바꾸었더니 시간 초과가 났다. 정답률이 35%인데 너무 단순하게 접근한 것부터..
https://www.acmicpc.net/problem/9996 9996번: 한국이 그리울 땐 서버에 접속하지 총 N개의 줄에 걸쳐서, 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 참고로, "DA"는 크로아티어어로 "YES"를, "NE"는 "NO"를 의미한다. www.acmicpc.net 문제 요약 접두사, 접미사 확인하여 같은 패턴의 문자열인지 판단 난이도 Silver 3 풀이 '*' 구분 문자 기준 split 입력값과의 비교 REVIEW 1차 시도: 패턴이 3글자로 주어지는 줄 알고 s[0], s[2]와 단순 비교 2차 시도: split이용해 앞, 뒤 비교. ab*ab로 접두사,접미사가 같을 경우를 고려하지 못함. string.find()로..
2.1 Stack Memory and Pointers In C++, the programmer has control over the memory and lifecycle of every variable! By default, variables live in stack memory. A Variable Every C++ variable has four things: A name A type A value A location in memory ( = memory address) int primeNumber 7;//memory address is unknown we can explore where this is going to be stored based on how we created this variabl..
https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제 요약 단어에 들어간 알파벳의 개수를 카운팅하여 배열로 출력. 난이도 Bronze 4 https://www.acmicpc.net/problem/1159 1159번: 농구 경기 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작 www.acmicpc.net 문제 요약 앞 글자가 같은 이름 카운팅 난이도 Bronze 2 풀이 char 형과 int형 간의 형변..
https://www.acmicpc.net/problem/2979 2979번: 트럭 주차 첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장 www.acmicpc.net 문제 요약 트럭 3대가 각 시간 범위를 가지고, 서로 겹치는 구간을 알아내어 가중치를 곱해줘야 한다. 난이도 Bronze 2 풀이 카운팅 배열 시간 범위를 모두 포괄하는 배열을 만들어 두고, 자동차의 개수를 cnt하여 값을 더해주는 방식 즉, 시간 : 배열의 index, 자동차의 대수 : 해당 index의 값 REVIEW 그래프로 표현해보니 시간 마다 자동차의 대수를 카운트해주..
https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 문제 요약 9명의 난쟁이 중 7명의 진짜 난쟁이를 찾아라. 일곱 난쟁이의 키의 합은 100. 난이도 Bronze 1 풀이 9명의 순열(permutation)을 구해 가며 7번째까지의 합이 100인지 체크 do-while문, next_permutation 활용 재귀함수로 순열 구현 9명 중 가짜 2명 뽑기 조합(combination) 중첩 for문으로 구현 REVIEW 2번 풀이로 구현했다. 가장 직관적인 ..
매번 티어 랭킹이 궁금해서 찾아보게 됌. Bronze(5~1)
순열과 조합의 개념과 공식 순열(Permutaion) 조합(Combination) 서로 다른 n 개 중 r 개를 골라 순서를 고려해 나열한 경우의 수. 서로 다른 n개 중에서 r개(n≥r) 취하여 조를 만들 때, 이 하나하나의 조를 n개 중에서 r개 취한 조합. ex. 축구 선수 12명이 서로 인사하는 경우의 수 ex. 3개의 자연수를 이용해 만들 수 있는 3자리 자연수 ex. 다른 색의 공 3개를 순서와 관계있게 3개 뽑는 경우 ex. 다른 색의 공 7개 중 2개를 뽑는 경우의 수. 경우의 수를 구하는 대표적인 방법들로, 뽑는 순서가 관계가 있으면 순열, 없으면 조합이다. 경우의 수를 구하는 다른 방법들로는 모든 경우 완전 탐색하는 브루트 포스(Brute Force) 즉, 합의 법칙 등이 존재한다. 순..