문자열

    [12973] 짝지어 제거하기(C++)

    [12973] 짝지어 제거하기(C++)

    문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 baabaa → bbaa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니다. 해결 ..

    2022 KAKAO TECH INTERNSHIP 성격 유형 검사하기(C++)

    2022 KAKAO TECH INTERNSHIP 성격 유형 검사하기(C++)

    문제 설명 나만의 카카오 성격 유형 검사지를 만들려고 합니다. 성격 유형 검사는 다음과 같은 4개 지표로 성격 유형을 구분합니다. 성격은 각 지표에서 두 유형 중 하나로 결정됩니다. 지표 번호 성격 유형 1번 지표 라이언형(R), 튜브형(T) 2번 지표 콘형(C), 프로도형(F) 3번 지표 제이지형(J), 무지형(M) 4번 지표 어피치형(A), 네오형(N) 4개의 지표가 있으므로 성격 유형은 총 16(=2 x 2 x 2 x 2)가지가 나올 수 있습니다. 예를 들어, "RFMN"이나 "TCMA"와 같은 성격 유형이 있습니다. 검사지에는 총 n개의 질문이 있고, 각 질문에는 아래와 같은 7개의 선택지가 있습니다. 매우 비동의 비동의 약간 비동의 모르겠음 약간 동의 동의 매우 동의 각 질문은 1가지 지표로 성..

    [2529] 부등호(C++)

    [2529] 부등호(C++)

    문제 바로가기 두 종류의 부등호 기호 가 k개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제시된 부등호 순서열 A가 다음과 같다고 하자. A ⇒ 부등호 기호 앞뒤에 넣을 수 있는 숫자는 0부터 9까지의 정수이며 선택된 숫자는 모두 달라야 한다. 아래는 부등호 순서열 A를 만족시키는 한 예이다. 3 1 7 0 이 상황에서 부등호 기호를 제거한 뒤, 숫자를 모두 붙이면 하나의 수를 만들 수 있는데 이 수를 주어진 부등호 관계를 만족시키는 정수라고 한다. 그런데 주어진 부등호 관계를 만족하는 정수는 하나 이상 존재한다. 예를..

    [2757] 엑셀(C++)

    [2757] 엑셀(C++)

    문제 바로가기 엑셀의 첫 번째 열은 A이고, 두 번째 열은 B이고, 26번째 열은 Z이다. 26번째 열 다음 열부터는 2글자를 이용한다. 예를 들어, 27번째 열은 AA이고, 28번째 열은 AB, 52번째 열은 AZ이다. 그 다음 53번째 열은 BA이며, 이와 같이 계속 열의 이름을 붙인다. ZZ열 다음 열은 AAA가 되고, 그 다음은 AAB가 된다. 엑셀에서 행은 그냥 행 번호를 사용하면 된다. 엑셀 스프레드시트에서 각 칸은 위에서 설명한 열과 행을 합쳐서 이름을 만들 수 있다. 가장 왼쪽 위에 있는 칸은 A1이 되고, 55열 23행에 있는 칸은 BC23이 된다. 열과 행이 주어졌을 때, 그 칸의 엑셀 스프레드시트 상에서 이름을 출력하는 프로그램을 작성하시오. 입력 입력은 여러 줄이며, RnCm형태이다..

    [20291] 파일 정리

    🌿 문제 [20291] 파일 정리 🌿 해결 방법 이 문제의 핵심은 파일 이름은 필요없고 오로지 '.' 뒤의 확장자만 필요하다는 것. 그래서 입력을 받을 때부터 전체 파일명을 전체 저장할 필요없이 확장자만 저장하면 된다. string 으로 파일명을 입력받으면 확장자를 한번에 빠르게 구할 수 있는데, 먼저 find 함수를 사용해서 '.'이 몇번째 인덱스에 있는지 찾는다. s.find(".") 그 다음 substr 함수를 사용해서 '.' 이후의 문자열을 한번에 구한다. s.substr(s.find(".")+1) 이렇게 확장자를 구했으면 map에다가 차례대로 저장해주면 된다. map은 key값을 기준으로 자동 정렬이 되어있는데 그걸 깜빡하고 벡터를 추가한뒤에 또 정렬을 하느라 시간, 메모리 모두 엄청나게 나왔었..

    [17413] 단어 뒤집기2

    🌿 문제 [17413] 단어 뒤집기2 🌿 해결 방법 경우는 크게 3가지로 나누어서 보면 된다. ''를 만날 때까지 나오는 모든 소문자, 공백, 숫자를 그대로 출력한다. 두번째 경우는 단어 하나가 끝났다는 뜻이기 때문에 스택을 점검하고 비어있지 않다면 모두 출력해준다. 세번째 경우는 그냥 스택에 바로 추가한다. 마지막으로 스택이 비어있는지 다시 한번 확인한 후, 남아있는 문자가 있다면 출력해준다.(마지막 단어) 한 가지 주의할 부분은 입력 문자 s에 공백이 있을 수 있기 때문에 getline을 통해 반드시 공백을 포함해서 입력받아야 한다. 🌿 내 코드 // [17413] 단어 뒤집기2 // 구현, 문자열, 스택 #include #include using namespace std; stack wordStac..

    [1157] 단어 공부

    [1157] 단어 공부

    https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net alpha 배열을 초기화해줘야 한다는 것은 생각도 못하고 엄한 것만 고치다가 오답률만 더 늘어버렸다. ㅎㅎ 항상 변수 선언하면 초기화부터 하고 사용하자... 한 가지 주의해야 할 점❗️ 문자를 알파벳으로 출력하고 싶은 경우 printf 함수를 쓰면 "%c"로 출력만 해주면 되지만 cout으로 출력하는 경우에는 출력문에서 타입 변환을 할 수 없기 때문에 사전에 원하는 타입으로 선언한 변수에 값을 저장해서 형 변환을 해준 뒤에 출력해..

    [11720] 숫자의 합(C / C++)

    https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 🧩 내 코드 Ver.1(C) // [11720] 숫자의 합 // https://www.acmicpc.net/problem/11720 #include int main(void) { int n, sum = 0; char arr[101]; scanf("%d", &n); scanf("%s", arr); for (int i = 0; i < n; i++) { sum += arr[i] - '0'; } printf("%d", sum); } Ver.2(C++) // [11720] 숫자의 합 //..