[프로그래머스][Level1] 문자열 내 p와 y의 개수 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/12916 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 단순히 문자열 개수 세는 문제이다. #include #include using namespace std; bool solution(string s) { bool answer = true; int pcnt = 0, ycnt = 0; for(int i = 0; i < s.size(); i++){ if(s[i] == 'p' || s[i] == 'P') pcnt++; else if(s[i] == 'y' ||..
[프로그래머스][Level1] 두 정수 사이의 합 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/12912 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 두 정수 사이의 합만 구하면 되는 단순한 문제이다. 만약 a보다 b가 크게 되면 swap함수로 두 값을 바꿔주면 된다. 풀이1 #include #include using namespace std; long long solution(int a, int b) { long long answer = 0; if(a > b) swap(a, b); for(int i = a; i b) { int temp = a; ..
[프로그래머스][Level1] 두 개 뽑아서 더하기 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/68644 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 이중 for문을 돌려 answer 벡터에 합들을 다 넣어준다. 오름차순으로 정렬하고 중복인 숫자는 erase함수로 제거해준다. 풀이1 #include #include #include using namespace std; vector solution(vector numbers) { vector answer; for(int i = 0; i < numbers.size() - 1; i++){ for(int ..
[프로그래머스][Level1] 나머지가 1이 되는 수 찾기 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/87389 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 answer을 1로 설정해주고 나머지가 1이 아니라면 answer을 + 1씩 해준다. 만약 나머지가 1이라면 무한 반복문을 탈출해준다. #include #include using namespace std; int solution(int n) { int answer = 1; while(1){ if(n % answer == 1) break; answer++; } return answer; }
[프로그래머스][Level1] 나누어 떨어지는 숫자 배열 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/12903 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 나누어 떨어진다면 answer 벡터에 넣고, 오름차순으로 정렬해주면 된다. 풀이1 #include #include #include using namespace std; vector solution(vector arr, int divisor) { vector answer; for(int i = 0; i < arr.size(); i++){ if(arr[i] % divisor == 0) answer.pus..
[프로그래머스][Level1] 같은 숫자는 싫어 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 중복을 제거하려면 벡터의 erase함수를 쓰면 된다. 풀이1 #include #include #include using namespace std; vector solution(vector arr) { vector answer; arr.erase(unique(arr.begin(), arr.end()), arr.end()); for(int i = 0; i < arr.size(); i++){ answer...
[프로그래머스][Level1] 가운데 글자 가져오기 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/12903 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 만약 s의 길이가 홀수라면 s.size() / 2 부분만 반환하면 되지만, 짝수라면 s.size() / 2 - 1인 부분도 반환해야된다. #include #include using namespace std; string solution(string s) { string answer = ""; int idx = s.size() / 2; if(s.size() % 2 == 0){ answer += s[id..
[프로그래머스][Level1] 3진법 뒤집기 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/68935 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 3진법 상에서 앞뒤로 다시 뒤집어야 하니 reverse함수는 필요 없다. 뒷 자리수부터 3의 0 제곱, 3의 1 제곱,... 3의 n제곱을 곱해주면 3진법에서 10진법으로 바꿀 수 있다. 풀이1 #include #include #include using namespace std; string Num(int n){ string str = ""; while(n != 0){ str += to_string(n % 3..
[프로그래머스][Level1] [1차] 비밀지도 c++
·
🍞 Problem Solving/Programmers
https://programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 v1 문자열 벡터에 arr1의 값을 이진수로 변환한 문자열을 넣고, v2 문자열 벡터에 arr2의 값을 이진수로 변환한 문자열을 넣는다. 이진수로 변환할 때 9일 경우 1001로 n = 5일 때 5자리를 만족하지 못한다. 5자를 맞춰주기 위해 앞부분에 0을 붙여주어 01001을 만든다. 그리고 이중 for문을 돌려 만약 두 문자열 중 한 곳이라도 1(벽)이 있다면 #을 출력하고, 둘 다 0(공백)이라..
[백준] 1449 수리공 항승 c++
·
🍞 Problem Solving/Baekjoon
https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 풀이과정 일단 위치 입력 받은 것을 sort함수로 정렬해준다. 물을 막을 때, 적어도 그 위치의 좌우 0.5만큼 간격을 줘야한다고 했으니 loc[i] - start에 1씩 더해준다. 그 값이 테이프의 길이보다 더 클 경우 개수를 카운트해주며 시작지점(start)을 loc[i]로 업데이트해준다. #include #include using namespace std; int main()..