분류 전체보기
-
(01152) 단어의 개수 (c++)코딩테스트/백준 2024. 1. 25. 00:00
1. 문제 1152번: 단어의 개수 (acmicpc.net) 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 2. 풀이 1. while문의 조건에 cin >> input 사용 2. while문이 반복된 횟수 만큼 cnt 증가 3. 생각 c++의 cin은 whitespace(' ', '\n', '\t' 등)을 무시하고 저장한다. 그래서 while문의 조건으로 cin>>input을 주면, 공백은 내부적으로 알아서 버려준다. 이런 스킬 등을 알고 사용할 수 있게 연습해봐야지 cin과 scanf는 공백 문자를 ..
-
(02675) 문자열 반복 (c++)코딩테스트/백준 2024. 1. 24. 23:49
1. 문제 2675번: 문자열 반복 (acmicpc.net) 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 2. 풀이 1. 테스트 케이스 T만큼 반복 2. 문자열 S for문으로 돌리고, 반복 횟수 R만큼 push_back() shin0112/BOJ_cpp: BOJ c++ solutions (github.com)
-
과일 장수 (c++)코딩테스트/프로그래머스 2024. 1. 24. 23:30
1. 문제 코딩테스트 연습 - 과일 장수 | Programmers School 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 1. vector 정렬 - 큰 순서대로 #include sort(score.begin(), score.end(), compare); bool compare 정의 - 내림차순 정렬 2. i를 m - 1로 해서 for문 반복 m개마다 끊어서 최저 과일 가격 확인 score 크기보다 반복문 탈출 각 사과 상자의 가격 확인 후, answer에 총 합 할당 shin0112/programmers_cpp: programmers' co..
-
Budget (c++)코딩테스트/프로그래머스 2024. 1. 24. 01:05
과정 1. 모든 경우의 수를 구해서 가장 많이 물건을 살 수 있는 경우 고르기? → O(n!) 2. 벡터를 정렬해서 작은 숫자부터 확인해보기 정렬 알고리즘 - algorithm의 sort → O(nlogn) 앞에서부터 예산 확인하기 - 최악의 경우 전부 확인 → O(n) sol 1. 정렬 알고리즘으로 d 정렬하기 → O(nlogn) 2. for문으로 budget에서 작은 가격부터 감산하고, 할 수 있으면 answer++ 3. 감산한 값이 0보다 작으면 더 이상 예산을 사용할 수 없으므로 값 return 고민 처음에는 budget에서 d[i]를 뺄 생각을 못해서 sum이라는 새로운 변수를 만들어서 사용했다. int 변수 1개라서 4 bytes의 메모리라도 어떻게 보면 낭비! 메모리를 줄일 수 있는 방법이 ..
-
(10809) 알파벳 찾기 (c++)코딩테스트/백준 2024. 1. 24. 01:05
1. 문제 10809번: 알파벳 찾기 (acmicpc.net) 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 2. 풀이 1. 알파벳 포함 위치를 저장할 벡터 생성 vector check(26, -1); 2. 입력 string for문으로 반복하면서 벡터('a'를 0으로)에 알파벳 사용 위치 저장 3. 처음에 찾은 위치만 들어가게 예외처리 shin0112/BOJ_cpp: BOJ c++ solutions (github.com)
-
(10818) 최소, 최대 (c++)코딩테스트/백준 2024. 1. 24. 01:05
1. 문제 10818번: 최소, 최대 (acmicpc.net) 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 2. 풀이 1. mini와 maxi 초기화 2. for문으로 N번 반복 3. 입력 들어올 때마다 max, min 확인 shin0112/BOJ_cpp: BOJ c++ solutions (github.com)
-
백준 저작권코딩테스트/백준 2024. 1. 24. 01:00
이용 규칙 (acmicpc.net) 이용 규칙 블로그블로그에는 지속적으로 의미를 가질 수 있는 다음과 같은 글을 올릴 수 있습니다. 아래는 예시이며 아래 적히지 않은 내용도 가능합니다.알고리즘/자료구조 튜토리얼문제에 종속적이지 help.acmicpc.net 저작권 문제의 저작권은 문제를 만든 사람에게 있습니다.소스 코드의 저작권은 소스 코드를 작성한 사람에게 있습니다.문제의 본문을 블로그에 업로드하는 것 보다는 링크로 추가해주세요.BOJ를 활용한 인터넷 방송은 자유롭게 할 수 있습니다.
-
외계어 사전 (c++)코딩테스트/프로그래머스 2024. 1. 20. 20:00
과정 1. spell으로 모든 경우의 수 만들기 → O(n!) 2. 삼중 for문으로 해결 → O(n^3) dic 한 번 dic[i] 한번 spell과 비교 3. set 사용 → O(n^2logn) 중복 확인 안함 4. 중복을 확인할 수 있는 방법 생각.. sol 1. 필요한 벡터 만들기 조건이 되는 알파벳을 확인하는 벡터 - con 이미 중복되었는지 확인하는 벡터 - check 2. 이중 for문 dic[i] → dic[i][j] dic[i][j]의 값으로 con 확인 이미 중복되었는지 확인 위 2가지 조건을 만족하지 않으면 return 2 3. 중복용으로 확인했던 vector check 0으로 초기화 고민 글자 or 숫자의 여부를 확인하는 경우를 찾는 경우에 약한 듯 위에는 중복 여부까지 확인 적절한..