본문 바로가기

Algorithm

(2139)
(C++) - 프로그래머스(연습문제) : 시저 암호 programmers.co.kr/learn/courses/30/lessons/12926?language=cpp 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀 programmers.co.kr 문자열 처리 문제였습니다. 풀이방법 대문자와 소문자를 구별해준 후 n만큼 알파벳을 이동한 후에 해당 알파벳을 answer에 더해주시면 됩니다. Code #include #include using namespace std; string solution(string s, int n) { string answer = ""; for..
(C++) - 백준(BOJ) 1700번 : 멀티탭 스케줄링 답 www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net greedy문제였습니다. 풀이방법 플러그를 꽂는 방법을 생각해야 합니다. 1. 전기용품 이름이 현재 멀티탭에 꽂혀있는 경우 : 뺄 필요가 없습니다. 2. 전기용품 이름이 현재 멀티탭에 꽂혀있지 않은 경우 : 빈 멀티탭에 꽂아줍니다. 3. 멀티탭이 모두 차서 빼야되는 경우 : 앞으로 사용되지 않는 용품이거나 가장 나중에 사용되는 용품인 경우 이 제품을 빼줘야합니다. 따라서 모든 multiTap 구멍을 찾아서 꽂혀..
(C++) - 프로그래머스(연습문제) : 이상한 문자 만들기 programmers.co.kr/learn/courses/30/lessons/12930 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr 문자열 처리 문제였습니다. 풀이방법 문자열을 계속 더해가다가 공백마다 소 대문자 변경여부를 확인해줍니다. Code #include using namespace std; string solution(string s) { string answer = ""; string tmp = ""; for(int i = 0 ; i < s.size(); i++){ tmp+=s[i]..
(C++) - 프로그래머스(연습문제) : 올바른 괄호 programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr stack을 이용한 문제였습니다. 풀이방법 올바른 괄호가 나오면 '('와 ')' 가 만나 터져 없어지는 생각을 했습니다. 1. '('문자를 stack에 push합니다. 2. stack에 원소가 있고 stack.top()이 '('인데 s[i]가 ')'라면 올바른 괄호이므로 stack을 pop()해줍니다. 3. stack에 원소가 남아..
(C++) - 프로그래머스(연습문제) : 문자열 내 마음대로 정렬하기 programmers.co.kr/learn/courses/30/lessons/12915 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱 programmers.co.kr 정렬 구현 문제였습니다. 풀이방법 1. 매 solution함수 호출마다 n을 갱신해줍니다. 2. cmp함수를 이용해 stl sort함수의 세 번째 인자를 cmp함수 내에 정해진 기준으로 정렬여부를 판별하도록 합니다. 사전순 (오름차순)으로 정렬되어야 함을 유의하며 작성합니다. Code #include usin..
(C++) - 프로그래머스(연습문제) : 소수찾기 programmers.co.kr/learn/courses/30/lessons/12921 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr 아리스토텔레스의 체를 이용해 소수를 찾는 문제였습니다. 풀이방법 1. 100만까지의 소수 아닌 것을 체크해줍니다. 2. 2부터 n까지 중 체크가 안되어 있는 것은 소수이므로 답을 더해줍니다. Code #include using namespace std; void primeInit(int ck[]){ for(int i = 2 ; i
(C++) - 프로그래머스(연습문제) : 수박수박수박수박수박수? programmers.co.kr/learn/courses/30/lessons/12922 코딩테스트 연습 - 수박수박수박수박수박수? 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 programmers.co.kr 간단한 문자열 처리 문제였습니다. 풀이방법 1. n까지 loop를 돕니다. 2. i % 2 == 0이라면 "수"를 answer문자열 변수에 더해줍니다. i % 2 == 1이라면 "박"를 answer문자열 변수에 더해줍니다. Code #include #include using namespace std; string solution(int n..
(C++) - 프로그래머스(연습문제) : 2016년 programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 간단한 요일계산 문제였습니다. 풀이방법 1. 윤년이므로 2월은 29일입니다. 1년 366일인 해이죠. 각 달의 일 수를 반환해주는 함수를 만들어줍니다. 2. a이전 달까지의 일수 + b일 하게 된다면 1월 1일부터 지나온 총 일 수가 나옵니다. 이를 7로 나눈 나머지를 구한 결과를 구한 뒤 각 요일에 맞게 반환해주면 됩니다. Code #..