본문 바로가기

728x90

IT

(221)
[프로그래머스] Lv.1 올알이[2] [Python] 발음 가능한 옹알이로만 조합해서 발음 할 수 있는 단어의 개수를 구하는 문제 연속된 옹알이는 못 함 더보기 문제 설명 머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 30 문자열은 알파벳 소문자로만 이루어져 있습니다. https://school.programmers.co.kr/..
[프로그래머스] Lv.1 동물1 [SQL] 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR$($N$)$ FALSE ANIMAL_TYPE VARCHAR$($N$)$ FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR$($N$)$ FALSE NAME VARCHAR$($N$)$ TRUE SEX_UPON_I..
[백준] 20114번 미아 노트 [Python] 주어진 N,H,W와 옆으로, 위 아래로 번진 단어를 통해 원래 단어를 찾는 문제 N : 원래 단어의 길이 H=2 일 때, abc -> abc abc W=3 일 때, abc -> aaabbbccc 더보기 문제 미아는 과일을 좋아하는 소녀이다. 그녀의 비밀 노트에는 과일에 대해 그녀가 수집한 정보들이 가득하다. 평소와 다를 바 없이 과일들을 잔뜩 관찰하고 기쁜 마음으로 하교하던 어느 날, 친구가 뒤에서 덮치는 바람에 실수로 비밀 노트를 물에 빠뜨리고 말았다. 다행히 노트는 건질 수 있었지만, 노트에 적어두었던 정보들이 번지고 지워져버려 일부는 알아볼 수 없게 되었다. 노트에 적힌 문자열이 번진 패턴은 일정했는데, 가령 "abc" 문자가 세로로 3글자씩, 가로로 2글자씩 번진 경우는 다음과 같았다. aabbc..
[백준] 9575번 행운의 수 [Python] 주어진 세개의 수열의 원소들의 조합으로 합을 냈을 때 5나 8로만 이루어진 숫자를 만들 때, 그 숫자의 개수를 구하는 문제 더보기 문제 한슬이는 5와 8이 행운의 수라고 생각한다. 그래서 한슬이는 각 자리가 5와 8로만 이뤄져 있는 수를 행운의 수라고 한다. 정수 수열 A, B, C가 주어졌을 때 세 수열에서 각각 하나의 정수를 골라서 만들 수 있는 서로 다른 행운의 수의 개수를 구해보자. 예를 들어 A = [1, 10, 100], B = [3, 53], C = [4, 54]라고 한다면, 행운의 수를 만드는 방법은 8 = 1 + 3 + 4, 58 = 1 + 3 + 54, 58 = 1 + 53 + 4와 같이 총 3가지가 있다. 58은 2가지 방법으로 만들 수 있으니, 서로 다른 행운의 수의 개수는 8과 5..
[프로그래머스] Lv.1 숫자 짝꿍 [Python] 두 수의 공통된 숫자를 그 공통된 개수만큼 가져와 가장 큰수를 만드는 문제 더보기 문제 설명 두 정수 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와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 2, 5..
[프로그래머스] Lv.1 문자열 나누기 [Python] - 문자열 규칙에 따라 문자열을 나누고, 분해된 문자열의 개수를 구하는 문제 규칙 - 첫 글자부터 같은 글자와 다른 글자 수를 세어나가서, 두 수가 같아지만 분해 남은 문자열부터 똑같은 방식으로 진행 더이상 남은 문자열이 없고, 현재 진행중인 게 있다면 그 문자열 덩어리로 분해 더보기 문제 설명 문자열 s가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다. 먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다. 이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, x와 x가 아닌 다른 글자들이 나온 횟수를 각각 셉니다. 처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리합니다. s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복합니다. 남은 부분이 없다면 ..
[프로그래머스] Lv.1 대충 만든 자판 [Python] - 딕셔너리 자판 하나의 0개, 1개 또는 여러개의 문자가 할당됨. 목표 문자열을 주어진 자판들을 활용해 최소 횟수로 작성하자. 가능하면 총 횟수를 불가능 할 때는 -1을 출력하자. 더보기 문제 설명 휴대폰의 자판은 컴퓨터 키보드 자판과는 다르게 하나의 키에 여러 개의 문자가 할당될 수 있습니다. 키 하나에 여러 문자가 할당된 경우, 동일한 키를 연속해서 빠르게 누르면 할당된 순서대로 문자가 바뀝니다. 예를 들어, 1번 키에 "A", "B", "C" 순서대로 문자가 할당되어 있다면 1번 키를 한 번 누르면 "A", 두 번 누르면 "B", 세 번 누르면 "C"가 되는 식입니다. 같은 규칙을 적용해 아무렇게나 만든 휴대폰 자판이 있습니다. 이 휴대폰 자판은 키의 개수가 1개부터 최대 100개까지 있을 수 있으며, 특정 ..
[프로그래머스] Lv.1 둘만의 암호 [Python] - 아스키코드 주어진 문자열 s의 알파벳을 skip에 들어있는 알파벳은 건너 뛰고 index만큼 뒤에 있는 알파벳으로 변경하는 문제 소문자로만 주어짐 더보기 문제 설명 두 문자열 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', ..
[프로그래머스] Lv.1 동물2 [SQL] 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR$($N$)$ FALSE ANIMAL_TYPE VARCHAR$($N$)$ FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR$($N$)$ FALSE NAME VARCHAR$($N$)$ TRUE SEX_UPON_I..
[백준] 17176번 암호해독기 [Python] - 아스키코드 0은 띄어쓰기, 1 - 26 범위 안의 수는 A ~ Z, 27 - 52 범위 안의 수는 a ~ z로 해석 평문을 암호화해서 주어진 암호문을 만들 수 있는지 확인하는 문제 더보기 문제 방금 도착한 암호문을 해독했는데, 해독에 오류가 없는지 확인해보려 한다. 해독한 문장이 암호문을 해석한 결과로 나올 수 없다면, 그 해독은 잘못된 것이다. 암호문은 0 이상 52 이하의 정수로 이루어져 있다. 0은 띄어쓰기, 1 - 26 범위 안의 수는 A ~ Z, 27 - 52 범위 안의 수는 a ~ z로 해석된다. 암호문은 띄어쓰기를 포함한 모든 철자를 이와 같이 정수로 치환한 후 순서를 무작위로 뒤섞어서 만들어졌다. 입력 첫 번째 줄에는 주어질 수열의 길이 N이 주어진다. $(1 ≤ N ≤ 100,000)$ 두 번째 줄..
[백준] 12981번 공 포장하기 [Python] - 그리디 세가지 색깔의 공이 있고, 공을 담는 최소 박스 개수 구하는 문제 1 박스에 공은 1,2 또는 3개를 넣을 수 있습니다. 모두 같은 색으로 넣거나 모두 다른 색으로 넣어야 합니다. 더보기 문제 빨간 공 R개, 초록 공 G개, 파란 공 B개를 가지고 있다. 오늘은 이 공을 박스로 포장하려고 한다. 박스에는 공이 1개, 2개, 또는 3개 들어갈 수 있다. 박스에 들어가는 공의 색은 모두 다르거나, 모두 같아야 한다. 필요한 박스 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 R, G, B가 주어진다. $(1 ≤ R, G, B ≤ 100)$ 출력 첫째 줄에 필요한 박스 개수의 최솟값을 출력한다. 12981번: 공 포장하기 $($acmicpc.net$)$ 모두 같은 색으로 3개씩 $($3으로 나..
[백준] 22993번 서든 어택 3 [Python] - 그리디 공격력이 강한 사람이 약한 사람과 전투를 치르면 이기면서 상대방의 공격력을 갖는다. $($지면 끝, 동점은 아무 일도 일어나지 않음$)$ 전투 순서가 운이 좋아서 이길 수 있다면 Yes, 어떠한 경우에도 이길 수 없다면 No를 출력하는 문제 더보기 문제 지스타를 준비하기 시작한 작년 여름 이후 CBT와 런칭 준비를 한 오늘까지. 평일 저녁에 가족이 깨어 있는 것을 거의 본 적이 없다. 이제 본격적인 정식오픈을 이틀 앞 둔 오늘. 바람소리와 스산한 빗소리가 사무실 창밖을 때린다. 폭풍전야. 블라인드에서 서든3을 비웃던, 지금도 비웃는 이들에게 반박글을 달지 않았다. 니들이 허접한지, 우리가 허접한지는 결과가 말해줄 것이다. 넥슨의 게임 개발자 준원이는 서든어택 3의 출시를 앞두고 게임 테스트를 하고 있다...