본문 바로가기

전체 글

1049 기타줄 n : 끊어진 기타줄의 개수 M : 브랜드 6개 세트와 낱개로 사는 두가지 경우가 있다. 각 브랜드 별 돈의 가격을 구한 후 그 중에서 최솟값을 구하면 될거라 생각했다. #include #include #include using namespace std; int main() { int n, m; scanf("%d %d", &n, &m); vector money(m*2); for(int i = 0; i < m*2; i=i+2){ scanf("%d %d", &money[i], &money[i+1]); money[i+1] *= n; } printf("%d", *min_element(money.begin(), money.end())); return 0; } 처음 짠 코드는 위와 같다. 먼저 돈을 입력받을 벡터를.. 더보기
10867 중복 빼고 정렬하기 저번 정렬 문제랑 비슷하게 풀었다. 입력으로 들어오는 수의 절댓값이 1000을 넘지 않으므로 배열을 따로 만들어서 들어오는 수가 몇개인지 셌다. 다음으로 0이 아니면 수가 들어왔다는 뜻이므로 출력한다. 끗~! #include #include using namespace std; int main() { int n; scanf("%d", &n); vector a(2001,0); for(int i = 0; i ForwardIt unique( ForwardIt f.. 더보기
10989 수 정렬하기 3 어렵다! 모르겠다! 감도 안 잡힌다! ''' 그냥 편하게 정렬해서 풀려 했더니 메모리 초과가 떴다. 보니깐 메모리 제한이 8MB였다ㅋㅋㅋㅋ 8MB = 8 * 1000KB = 8 * 1000 * 1000바이트이고 N은 10,000,000개가 들어온다. 딱 봐도 터진다! 그런데 해결방법을 모르겠다! 알고보니 카운팅 소트를 써야 하는 문제였다. https://bowbowbow.tistory.com/8 Counting Sort : 계수 정렬 Counting Sort Counting Sort Counting Sort 소개 정렬 과정 애니메이션 예시 구현 정리 끝 소개 Counting Sort 는 정렬 알고리즘으로 의 시간복잡도를 갖습니다. 반면 일반적 상황에서 가장 빠른 정렬 알고리즘.. bowbowbow.tis.. 더보기
1252 이진수 덧셈 #include #include using namespace std; int main() { string zero = "", b1, b2; cin >> b1>> b2; for(int i = 0; i < b1.length(); i++){ if(b1[i] == 0) b1 = b1.substr(1, b1.length() - 2); else break; } cout 더보기
2033 반올림 음.. 엄.. 이렇게 푸는게 맞다고 생각했는데 틀렸다. 0부터 9까지는 반올림 안 하니깐 그대로 출력되고 10이상은 반올림을 해야하고.. 최대가 99,999,999라 반올림하면 100,000,000라 2,100,000,000보다 작아서 터지지도 않고.. 실제로 저 값 넣어보니 100,000,000이 나왔다. 음.. 모르겠다. #include #include using namespace std; int main() { int n; scanf("%d", &n); int len = to_string(n).length(); for(int i = 1; i tmp){ if(n%tmp >= 5*tmp/10){ n = n/tmp*tmp; n +.. 더보기
9455 박스 규칙찾는 문제였다. 규칙 찾기 전에는 좀 헤맸는데 막상 찾고 나니깐 쉽다! #include #include using namespace std; int main() { int t; scanf("%d", &t); for(int i = 0; i 0; j--){ for(int k = 0; k 더보기
10163 색종이 이렇게 풀면 될 것 같은데 싶었는데 그대로 하니 맞았다! 찜찜한 건 시간복잡도가 n^3이라 조금 걱정했는데 n^3이면 입력이 대략 500까지 가능하고 이 코드는 n^3을 두 번 쓰니 250까지 1초 내로 돌아갈 것이다. 여기서 최대 100번까지 돌아가니 시간 안에 돌아갈 것이다. #include #include using namespace std; int main() { vector v(101, vector (101, 0)); int n; scanf("%d", &n); for(int i = 1; i 더보기
1408 24 시간문제 많이 풀어봐서 스뭇스하게 풀었다. 시간 ':' 기준으로 자르는 건 substr 사용해서 잘랐고 int로 바꾸는 건 stoi를 사용했다. 음 편하구만 이거 알고 있어서 쉽게 풀었다. #include #include using namespace std; int main() { string now_time; string start_time; cin >> now_time >> start_time; int now_sec = stoi(now_time.substr(0, 2))*3600 + stoi(now_time.substr(3, 2))*60 + stoi(now_time.substr(6, 2)); int start_sec = stoi(start_time.substr(0, 2))*3600 + stoi(star.. 더보기