백준 문제풀이/실버5

백준 문제풀이/실버5

백준 10867번 - 중복 빼고 정렬하기

https://www.acmicpc.net/problem/10867 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net 풀이를 무려 3가지나 떠올렸다!!! 1번 풀이) 중복을 허용하지 않으면서, 오름차순으로 자동정렬하는 stl은 set이 있다. 그래서 set을 활용해봤다. #include #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); set s; int n; c..

백준 문제풀이/실버5

10815번 - 숫자 카드

https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 풀이는 두 가지로 풀었다. 1) set을 활용. 중복인지 찾으려고 활용하였다. #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, m; set s; cin >> n; for (int i = 0; i < n; ..

백준 문제풀이/실버5

백준 2941번 - 크로아티아 알파벳

https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net #include #include using namespace std; int main() { // dz= 와 z=를 주의해야한다. string input; cin >> input; int count = 0; int three = 0; for (int i = 0; i = input.length() - 1)..

백준 문제풀이/실버5

백준 1312번 - 소수

https://www.acmicpc.net/problem/1312 1312번: 소수 피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다. www.acmicpc.net 학교 java 수업 진도초반은 너무 쉬워서 그냥 제끼고 백준 푸는중. 처음엔 그냥 나누려다가 숫자가 너무 커지면 소숫점 정확도가 떨어지기 때문에 문제에선 해당 원하는 자릿수만을 원하기에 그냥 하나씩 반복문을 돌려가며 찾는 것으로 결정했다. 보통 우리가 나눗셈을 할때 어떻게 나누는지 생각해보면 쉽게 풀린다. 나눗셈을 하고 1. 나머지에 *10을 하고 2. B와 나누고 그 몫이 어떤 자리의 소숫점..

백준 문제풀이/실버5

백준 11651번 - 좌표 정렬하기 2

https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net x, y 좌표 두 개가 필요해서 이차원 배열을 활용하는 방법도 있지만, pair 자료형을 사용해봤다. 약간 특이한 점이 있다면, y좌표를 기점으로 둬야한다는 것이다. 그렇기에 기존의 sort함수를 활용할 때 추가적인 기능을 같이 넣어줘야한다. #include #include #include using namespace std; bool co..

백준 문제풀이/실버5

백준 7568번 - 덩치

https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net x > p 그리고 y > q 가 핵심이다. 우선 좌표가 x,y 이렇게 두 개이기에 pair을 활용했다. 그 다음 해당 사람 한 명 마다 나머지 사람 전부를 비교해야하므로 이중 반복문을 활용해주었다. 등 수 표현이 약간 처음에 이해가 잘 안되었는데, 문제 그대로 '자신보다 더 큰 덩치의 사람이 k명이면 그 사람의 등수는 k + 1' 이 된다를 활용하면 된다. #include #inclu..

백준 문제풀이/실버5

백준 1476번 - 날짜 계산

https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 경우의 수를 생각해봤다. 15 * 28 * 19 정도이다. 안 크다. 그냥 그래서 숫자를 하나씩 키워가면서 맞는 경우를 판단하게 했다. 해당 범위를 넘기면 바로 다시 1로 초기화 시키고. #include using namespace std; int main() { int result = 1; int E, S, M; cin >> E >> S >> M; int e = 1, s = 1, m = 1; whil..

백준 문제풀이/실버5

백준 10814번 - 나이순 정렬 (p.s. 배울 게 많군)

https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 사고과정은 크게 두가지이다. 1. 변수가 두개이고 서로 연동되어 있으니, pair을 사용해볼 것인가 2. 아니면 그냥 클래스나 구조체로 묶어서 활용할 것인가 사실 풀면서 1번 생각이 났지만 pair을 사용해본 적이 없어서 문제는 클래스로 풀었지만 구글링해서 배운 결과를 공유해볼까한다. 1. pair을 활용 #include #include #include #include using namespace st..

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