목록분류 전체보기 (370)
GitHubSeob

문제 https://programmers.co.kr/learn/courses/30/lessons/12930 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr 문제풀이 단어의 맨 앞 글자를 포함한 짝수번째 글자는 대문자로, 홀 수 번째 글자는 소문자로 바꾼다. 공백은 공백으로 출력하면 된다. 소문자로 변경해주는 tolower, 대문자로 변경해주는 toupper함수를 이용한다. 코드 #include #include using namespace std; string solution(string s) { ..

문제 https://programmers.co.kr/learn/courses/30/lessons/12928 코딩테스트 연습 - 약수의 합 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수 programmers.co.kr 문제풀이 1부터 n까지 돌면서 n을 나누고 나눈 나머지가 0이라면 약수이므로 answer에 더해준다. 코드 #include #include using namespace std; int solution(int n) { int idx=0; int answer = 0; for(idx=1;idx

문제 https://programmers.co.kr/learn/courses/30/lessons/12926 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀 programmers.co.kr 문제풀이 대문자는 A~Z를 돌고, 소문자는 a~z를 돈다. A는 아스키코드가 65Z는 90, a는 97z는 122이다. 대문자는 65로 나눈 나머지를 26으로 나눈 나머지를 구하고 65를 더하면 n칸 이동한 값이 나온다. 소문자는 97로 나눈 나머지를 26으로 나눈 나머지를 구하고 97을 더하면 n칸 이동한 값이 나온다. 코드 ..

문제 https://programmers.co.kr/learn/courses/30/lessons/86051 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 문제풀이 bool형 벡터를 만들어서 기본 값을 false로 지정해주고 numbers에 숫자가 있으면 true로 바꾼다. for문으로 false인 값만 answer에 더해준다. 코드 #include #include using namespace std; int solution(vector numbers) { ve..

문제 https://programmers.co.kr/learn/courses/30/lessons/12925 코딩테스트 연습 - 문자열을 정수로 바꾸기 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니 programmers.co.kr 문제풀이 string을 int로 바꿔주는 함수 stoi를 써서 string s를 int형으로 바꿔 return한다. 코드 #include #include using namespace std; int solution(string s) { int answer=stoi(s); return answer; }

문제 https://programmers.co.kr/learn/courses/30/lessons/85002 코딩테스트 연습 - 6주차 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 문제풀이 2차원 벡터를 선언하고 벡터[복서]에 4 첫 번째 정보는 이기면 Win의 개수를, 지면 lose개수를 늘리고 win/(win+lose)를 하여 복서의 정보를 저장한다. 두 번째 정보는 자신보다 무거운 복서를 이겼을 때의 개수를 저장한다. 세 번째 정보는 복서의 몸무게를 저장한다. 네 번째 정보는 복서의 번호를 저장한..

문제 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제풀이 BFS를 이용해 풀었다. 방문 함수를 만들어 같은 곳을 재방문하지 않도록 했다. 2열짜리 큐를 만들어 현재 위치, 몇번 이동했는지를 나타낸다. 점은 100,000까지 있으므로 더 넘지 못하고, 각각 제한을 걸어 효율적으로 이동할 수 있게 한다. 코드 #include #include #include using namespace std; vectorvisit(..

문제 https://www.acmicpc.net/problem/10971 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 문제풀이 DFS로 풀었고, 1차원 방문 벡터를 이용한다. 처음에 출발하는 도시, 현재 위치한 도시, 비용, 방문 배열을 인자로 받는 함수 Move를 만든다. Move는 매번 방문 벡터를 돌면서 가지 않은 도시가 있는지 체크를 한다. 모든 도시를 돌았고, 현재 있는 도시가 처음에 출발한 도시였고, answer값 보다 작으면 answer값을 경신한다...

문제 https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 문제풀이 두 가지방법으로 문제를 풀었다. 첫번째는 에 있는 모든 순열의 경우의 수를 알려주는 next_permutation 함수를 이용했다. 두번째는 오름차순으로 정렬해서 벡터를 반으로 나누고 계산하고, 내림차순으로 정렬해서 벡터를 반으로 나누고 계산을 해서 큰 값을 출력했다. 코드 1) #include #include #include #include using namespace std; int main(..