문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일 때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬 트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬 트리(유저가 스킬을 배울 순서)를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬 트리 개수를 return 하는 solution ..
문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범으로 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한 사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수..
문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 풀이 function solution(participant, completion) { c..
문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다.(0 < A, B < 10) 출력 첫째 줄에 A+B를 출력한다. 예제 입력1 1 2 예제 출력1 3 풀이 package main import "fmt" func main() { var a, b int fmt.Scan(&a, &b) fmt.Print(a+b) } 해설 Go 언어의 fmt 패키지를 사용하여 입력과 출력을 하였다. fmt 패키지의 Scan 함수에 입력받을 변수 a와 b를 포인터 형태로 넣어주어야 한다. 그리고 Print 함수를 사용하여 a와 b를 더한 값을 출력해주었다.
문제 아래 예제와 같이 개를 출력하시오. 입력 없음. 출력 개를 출력한다. 예제 입력1 예제 출력1 |\_/| |q p| /} ( 0 )""" \ |"^"` | ||_/=\\__| 풀이 package main import "fmt" func main() { // 한 줄 fmt.Print("|\\_/|\n|q p| /}\n( 0 )\"\"\"\\\n|\"^\"` |\n||_/=\\\\__|") // 여러 줄 fmt.Println("|\\_/|") fmt.Println("|q p| /}") fmt.Println("( 0 )\"\"\"\\") fmt.Println("|\"^\"` |") fmt.Print("||_/=\\\\__|") } 해설 Go 언어의 fmt 패키지를 사용하여 출력하였다. 출력되지 않는 특수..
문제 아래 예제와 같이 고양이를 출력하시오. 입력 없음. 출력 고양이를 출력한다. 예제 입력1 예제 출력1 \ / \ ) ( ') ( / ) \(__)| 풀이 package main import "fmt" func main() { // 한 줄 fmt.Print("\\ /\\\n ) ( ')\n( / )\n \\(__)|") // 여러 줄 fmt.Println("\\ /\\") fmt.Println(" ) ( ')") fmt.Println("( / )") fmt.Print(" \\(__)|") } 해설 Go 언어의 fmt 패키지를 사용하여 출력하였다. 출력되지 않는 특수 문자에 유의하여 작성해야 한다.
문제 ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올 해에도 파주 World Finals 준비 캠프에 참여했다. 대회를 뜰 줄 모르는 지박령 kriii를 위해서 격려의 문구를 출력해주자. 입력 본 문제는 입력이 없다. 출력 두 줄에 걸쳐 "강한친구 대한육군"을 한 줄에 한 번씩 출력한다. 예제 입력1 예제 출력1 강한친구 대한육군 강한친구 대한육군 풀이 package main import "fmt" func main() { fmt.Print("강한친구 대한육군\n") fmt.Print("강한친구 대한육군") } 해설 Go 언어의 fmt 패캐지를 사용하여 출력하였다.