백준 문제풀이/실버4

백준 문제풀이/실버4

백준 10825번 - 국영수

https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 이름, 국어, 영어, 수학 점수가 다 묶여야 하므로 구조체를 써야한다는 생각이 들었다. 그리고 sort 함수를 사용할 때 compare함수를 새로 구현해서 인자로 넣어주면 된다라는 생각이 들었다 #include #include #include #include using namespace std; struct student { string name; int korean, eng..

백준 문제풀이/실버4

백준 1764번 - 듣보잡

https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 중복이 없다 했으므로 set을 활용해봤다. #include #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, m; int count = 0; cin >> n >> m; set s; for (int i =..

백준 문제풀이/실버4

백준 1302 - 베스트셀러

https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net map 이라는 자료구조를 처음 알았다. map은 각 노드가 key와 value 쌍으로 이루어진 트리 따라서 map은 first, second가 있는 pair 객체로 저장되는 데 first- key로 second- value로 저장. map은 자료를 저장할 때 자동으로 내부에서 정렬 key 기준으로 오름차순 정렬 #include #include #include #include using na..

백준 문제풀이/실버4

백준 1205번 - 등수 구하기

https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net 랭크 시스템이 있는 게임을 해봤다면 이해하기 편하다. 주의해야할점은 같은 점수면 등수가 같다는 점. 그리고 리스트 수를 벗어난다면 그 랭크 안에 들어갈 수 없다는 것. #include #include #include using namespace std; bool compare(int a, int b) { if (a > b) return true; else return ..

백준 문제풀이/실버4

백준 1812번 - 사탕

https://www.acmicpc.net/problem/1812 1812번: 사탕 첫째 줄에 N(3 ≤ N ≤ 999, N은 홀수)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 1번 학생과 2번 학생이 가지고 있는 사탕의 수의 합, 2번 학생과 3번 학생이 가지고 있는 사탕의 수의 합, …, N-1번 학 www.acmicpc.net N이 홀수이기 때문에, - + 를 이렇게 반복해주면 2 * 1번이 남게된다. 이를 활용하면 간단. #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; vector v(N); for (int i = 0..

백준 문제풀이/실버4

백준 1543번 - 문서 검색

https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 검색하고 싶은 단어를 want라는 string타입의 변수에 넣어놓자. 문서와 단어를 비교했을 때 일치한다면 그 다음 비교는 want의 다음 칸부터 검색을 해야지, 인덱스 한칸만 넘어가서 검색을 하면 안된다는 것에 유의해야한다. input[i+j] == want[j]로 하나씩 찾고 만약 n == length, 즉 다 맞았다면 count를 하나 해주고 want 수만큼 점프해야하므로 i = i + lengt..

백준 문제풀이/실버4

백준 4949번 - 균형잡힌 세상

https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net [이 왔다면 무조건 ]가 그 다음에 와야하고 (이 왔다면 무조건 )이 그 다음에 와야한다. 그 사이에 다른 기호가 와버리면 에러가 난다. 우선 이 원칙에 따라서 생각한게 스택이었다. 말 그대로 (이나 [이 온 게 먼저 쌓여있어야하고 그 이후에 온걸 확인하고 빼야하기때문이다. #include #include #include using namespace std; int main() { ..

백준 문제풀이/실버4

백준 10828번 - 스택

https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 그냥 조건문과 C++의 stack을 활용해서 구현했다. 특이한 건 없다.. #include #include #include using namespace std; int main(int argc, char* argv[]) { std::cin.tie(NULL); std::ios::sync_with_stdio(false); int count = 0; cin >> count; std::..

void_melody
'백준 문제풀이/실버4' 카테고리의 글 목록