C++ 86

백준 9966번 한국이 그리울 땐 서버에 접속하지(C++)

문제 https://www.acmicpc.net/problem/9996 9996번: 한국이 그리울 땐 서버에 접속하지 총 N개의 줄에 걸쳐서, 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 참고로, "DA"는 크로아티어어로 "YES"를, "NE"는 "NO"를 의미한다. www.acmicpc.net 해설 문자열의 길이를 리턴하는 .size() 특정 문자열의 위치를 리턴하는 .find() 문자열에서 원하는만큼 자르는(슬라이싱) .substr() 을 적절히 사용하여 푸는문제 파일명의 길이로 발생하는 예외를 적절히 처리해주는것이 주된 문제였음 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24..

백준 11655번 ROT13(C++)

문제 https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 해설 알파벳이 26개인것을 인지하고 문제를 보면 "문장" -> "암호화1번한 문장" -> "다시한번 암호화 한 문장(2번암호화)"라는 조건을 통해 뭔가 1대1대응이 되는 규칙이 있다는 것을 파악 한 후 아스키 코드상에서 13을 더한 값과 대칭되는 것을 파악 그 후 알파벳에 해당하는 아스키 코드 값에서는 13만큼 더한 값을 ret(결과)에 저장 그 외에는 그대로 ret에 저장 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1..

백준 10988번 팬린드롬인지 확인하기(C++)

문제 https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 해설 중간을 기준으로 양쪽의 값이 같아야 함으로 한 값은 0부터 한값은 끝부터 시작 0부터 시작한 변수는 늘어나도록 끝부터 시작한 변수는 줄어들도록 함 값이 같지 않은 부분이 나오면 0을 출력 끝까지 나오지 않으면 1을 출력하도록 함 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include using namespace std; string a; int len; int main(){ cin >> a; l..

백준 2979번 트럭 주차(C++)

문제 https://www.acmicpc.net/problem/2979 2979번: 트럭 주차 첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장 www.acmicpc.net 해설 1대가 주차되었을때, 2대가 주차되었을때, 3대가 주차되었을때 각각 가격이 다르다 이때 때문에 차량별로 들어오는 시간 - 나가는 시간이 주어지기 때문에 해당 시간을 나타내는 배열 위치에 차량 수를 +1 해준다 그렇게 하면 차량이 없는 칸은 0 / 1대는 1 / 2대는 2 / 3대는 3이되어 각 값에 따라 가격*차량수 를 결과에 더해주면 된다 코드 1 2 3 4 5 6..

백준 10808 알파벳 개수(C++)

문제 https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 해설 소문자 알파벳의 아스키코드는 97 ~ 122까지인 점을 이용하여 아스키코드를 통해 알파벳을 정수로 바꿔 배역[정수]++같은 형태로 배열에 카운팅하기 코드 1 2 3 4 5 6 7 8 9 10 11 #include using namespace std; int main(){ int alp[26] = {0}; string str; cin >> str; for(char a : str) alp[a - 97] ++; for(int i=0; i

백준 2309 일곱 난쟁이(C++)

문제 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 해설 입력값이 9개 밖에 되지 않아 전부 순열을 돌려도 그리 큰 수가 아니기에 순열을 통해 0~6까지의 인덱스에 위치한 값들의 합이 100이 되면 do-while문 종료 후 정렬 후 리턴 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include using namespace std; int main(){ int a; int a..