본문 바로가기

C#97

[프로그래머스] - 바탕화면 정리(C#) 바탕화면 정리 오늘은 "바탕화면 정리" 문제를 풀어보도록 하겠습니다. 이 문제의 정답률은 45%로, 앞으로 레벨1의 문제는 5문제 남았습니다. 바로 문제를 살펴보겠습니다. 문제 설명 코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다. 컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다. 파일들은 바탕화면의 격자칸.. 2023. 9. 20.
[프로그래머스] - 성격 유형 검사하기(C#) 성격 유형 검사하기 이번에 풀어 볼 문제는 "성격 유형 검사하기" 문제입니다. 이 문제는 2022 KAKAO TECH INTERNSHIP에 출제된 문제로 난이도가 꽤 있고, 상당히 도움이 될 수 있는 문제 중 하나입니다. 정답률은 48%로 매우 낮은 편에 속합니다. 이제 문제를 풀어보도록 하겠습니다. 문제 설명 나만의 카카오 성격 유형 검사지를 만들려고 합니다. 성격 유형 검사는 다음과 같은 4개 지표로 성격 유형을 구분합니다. 성격은 각 지표에서 두 유형 중 하나로 결정됩니다. 지표 번호 성격 유형 1번 지표 라이언형(R), 튜브형(T) 2번 지표 콘형(C), 프로도형(F) 3번 지표 제이지형(J), 무지형(M) 4번 지표 어피치형(A), 네오형(N) 4개의 지표가 있으므로 성격 유형은 총 16(=2 .. 2023. 9. 19.
[프로그래머스] - 햄버거 만들기(C#) 햄버거 만들기 오늘은 "햄버거 만들기" 문제를 풀어보도록 하겠습니다. 이번 문제의 정답률은 49%로 드디어 50%이하로 떨어지게 되었습니다. 레벨1의 문제도 이제 거의 막바지로 향하고 있습니다. 문제 살펴보겠습니다. 문제 설명 햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 높.. 2023. 9. 18.
[프로그래머스] - 둘만의 암호(C#) 둘만의 암호 오늘은 "둘만의 암호" 문제를 풀어보도록 하겠습니다. 이 문제의 정답률은 52% 입니다. 문제 설명 두 문자열 s와 skip, 그리고 자연수 index가 주어질 때, 다음 규칙에 따라 문자열을 만들려 합니다. 암호의 규칙은 다음과 같습니다. 문자열 s의 각 알파벳을 index만큼 뒤의 알파벳으로 바꿔줍니다. index만큼의 뒤의 알파벳이 z를 넘어갈 경우 다시 a로 돌아갑니다. skip에 있는 알파벳은 제외하고 건너뜁니다. 예를 들어 s = "aukks", skip = "wbqd", index = 5일 때, a에서 5만큼 뒤에 있는 알파벳은 f지만 [b, c, d, e, f]에서 'b'와 'd'는 skip에 포함되므로 세지 않습니다. 따라서 'b', 'd'를 제외하고 'a'에서 5만큼 뒤에 .. 2023. 9. 17.
[프로그래머스] - 대충 만든 자판(C#) 대충 만든 자판 오늘은 "대충 만든 자판" 문제를 풀어보도록 하겠습니다. 이번 문제의 정답률은 53%입니다. 문제 설명 휴대폰의 자판은 컴퓨터 키보드 자판과는 다르게 하나의 키에 여러 개의 문자가 할당될 수 있습니다. 키 하나에 여러 문자가 할당된 경우, 동일한 키를 연속해서 빠르게 누르면 할당된 순서대로 문자가 바뀝니다. 예를 들어, 1번 키에 "A", "B", "C" 순서대로 문자가 할당되어 있다면 1번 키를 한 번 누르면 "A", 두 번 누르면 "B", 세 번 누르면 "C"가 되는 식입니다. 같은 규칙을 적용해 아무렇게나 만든 휴대폰 자판이 있습니다. 이 휴대폰 자판은 키의 개수가 1개부터 최대 100개까지 있을 수 있으며, 특정 키를 눌렀을 때 입력되는 문자들도 무작위로 배열되어 있습니다. 또, .. 2023. 9. 16.
[프로그래머스] - 문자열 나누기(C#) 문자열 나누기 오늘은 "문자열 나누기" 문제를 풀어보도록 하겠습니다. 해당 문제의 정답률은 54% 입니다. 문제 설명 문자열 s가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다. 먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다. 이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, x와 x가 아닌 다른 글자들이 나온 횟수를 각각 셉니다. 처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리합니다. s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복합니다. 남은 부분이 없다면 종료합니다. 만약 두 횟수가 다른 상태에서 더 이상 읽을 글자가 없다면, 역시 지금까지 읽은 문자열을 분리하고, 종료합니다. 문자열 s가 매개변수로 주어질 때, 위 과정.. 2023. 9. 15.
[프로그래머스] - 체육복(C#) 체육복 오늘은 탐욕법(Greedy) 카테고리에 속해있는 "체육복" 문제를 풀어보도록 하겠습니다. 이 문제의 정답률은 55%입니다. 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담.. 2023. 9. 15.
[프로그래머스] - 숫자 짝꿍(C#) 숫자 짝꿍 오늘 풀어볼 문제는 "숫자 짝꿍" 입니다. 제목만 보고는 어떤 문제가 나올지 잘 예상이 안갑니다. 문제를 살펴보겠습니다. 문제 설명 두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다. 예를 들어, X = 3403이고 Y = 13203이라면, X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 3, 0, 3으로 만들 수 있는 가장 큰 정수인 330입니다. 다른 예시로 X = 5525이고 Y = 1255이면 X와 .. 2023. 9. 13.
[프로그래머스] - 옹알이(2)(C#) 옹알이(2) 오늘은 "옹알이(2)" 문제를 풀어보도록 하겠습니다. 해당 문제의 정답률은 57%입니다. 바로 문제 살펴보겠습니다. 문제 설명 머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 30 문자열은 알파벳 소문자로만 이루어져 있습니다. 입출력 예 babbling result.. 2023. 9. 12.
[프로그래머스] - 로또의 최고 순위와 최저 순위(C#) 로또의 최고 순위와 최저 순위 오늘은 2021 Dev-Matching: 웹 백엔드 개발자(상반기) 문제로 출제된 "로또의 최고 순위와 최저 순위" 문제를 풀어보도록 하겠습니다. 해당 문제부터는 레벨1이지만, 정답률이 57%로 한번에 떨어집니다. 문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 순위 당첨 내용 1 6개의 번호가 모두 일치 2 5개의 번호가 일치 3 4개의 번호가 일치 4 3개의 번호가 일치 5 2개의 번호가 일치 6(낙첨) 그 외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다... 2023. 9. 11.