본문 바로가기

알고리즘90

Algorithm - 아나그램(리스트 해쉬) 알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [아나그램(리스트 해쉬)] Anagram은 두 문자열이 알파벳의 나열 순서만 다를 뿐, 그 구성이 일치하는 것을 뜻한다. 예를 들면, AbaAeCe와 baeeACA는 알파벳의 나열 순서는 다르지만 그 구성을 살펴보면 A(2), a(1), b(1), C(1), e(2)로 알파벳과 그 개수가 모두 일치한다. 즉, 어느 한 단어를 재배열하면 상대편 단어가 될 수 있는 것을 아나그램이라고 한다. 길이가 같은 두 개의 단어가 주어지면 두 단어가 아나그램인지 판별하는 프로그램을 작성하시오. (단, 아나그램 판별 시 대·소문자는 구별됨) *입력 설명 첫 번째 줄에 첫 번째 단.. 2021. 12. 7.
Algorithm - 아나그램(딕셔너리 해쉬) 알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [아나그램(딕셔너리 해쉬)] Anagram은 두 문자열이 알파벳의 나열 순서만 다를 뿐, 그 구성이 일치하는 것을 뜻한다. 예를 들면, AbaAeCe와 baeeACA는 알파벳의 나열 순서는 다르지만 그 구성을 살펴보면 A(2), a(1), b(1), C(1), e(2)로 알파벳과 그 개수가 모두 일치한다. 즉, 어느 한 단어를 재배열하면 상대편 단어가 될 수 있는 것을 아나그램이라고 한다. 길이가 같은 두 개의 단어가 주어지면 두 단어가 아나그램인지 판별하는 프로그램을 작성하시오. (단, 아나그램 판별 시 대·소문자는 구별됨) *입력 설명 첫 번째 줄에 첫 번째 .. 2021. 12. 7.
Algorithm - 단어 찾기(딕셔너리 해쉬) 알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [단어 찾기(딕셔너리 해쉬)] 현수는 영어로 시를 쓰는 것을 좋아한다. 현수는 시를 쓰기 전에 시에 쓰일 단어를 미리 노트에 적어둔다. 이번에는 N개의 단어를 노트에 적었는데 시에 쓰지 않은 단어가 하나 있다고 한다. 시에 쓰이지 않는 단어를 찾는 프로그램을 작성하시오. *입력 설명 첫 번째 줄에 자연수 N(3 ≤ N ≤ 100)이 주어진다. 두 번째 줄부터 노트에 미리 적어놓은 N개의 단어가 주어지고, 이어서 바로 다음 줄부터 시에 쓰인 N-1개의 단어가 주어진다. *출력 설명 첫 번째 줄에 시에 쓰지 않은 한 개의 단어를 출력한다. 풀이(Python) 답안 i.. 2021. 12. 6.
Algorithm - 교육과정 설계(큐) 알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [교육과정 설계(큐)] 현수는 1년 과정의 수업계획을 만들고자 한다. 수업 중에는 필수과목이 있으며, 필수과목은 반드시 정해진 순서대로 모두 이수해야 한다. 예를 들어, 총 과목이 A~G까지 있고 여기서 필수과목이 C, B, A로 주어지면 반드시 이 순서대로 수업계획을 만들어야 한다. 여기서 순서란 B과목은 C과목을 이수한 후에 들어야 하고, A과목은 C와 B과목을 이수한 후에 들어야 한다는 것을 의미한다. 현수가 만약 C, B, D, A, G, E로 수업계획을 만들었다면 이는 제대로 된 계획이지만 C, G, E, A, D, B로 계획을 만들었다면 잘못된 계획을 .. 2021. 12. 6.
Algorithm - 응급실(큐) 알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [응급실(큐)] 메디컬 병원 응급실에는 의사가 한 명뿐이다. 응급실은 환자가 도착한 순서대로 진료를하며, 위험도가 높은 환자는 빨리 응급조치를 해야한다. 이러한 문제를 해결하기 위해 응급실은 다음과 같은 방법으로 환자의 진료순서를 정한다. 응급실에 접수한 순서대로 환자의 진료를 본다. 단, 해당 순서의 환자보다 위험도가 높은 환자가 존재하면 그 환자는 대기목록의 맨 마지막으로 보내진다. 만약, 해당 순서의 환자보다 위험도가 높은 환자가 없으면 그 환자를 진료한다. 현재 N명의 환자가 응급실의 대기목록에 있으며, 대기목록에는 환자의 위험도가 함께 표시되어 있다. 대.. 2021. 12. 6.
Algorithm - 공주 구하기(큐) 알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [공주 구하기(큐)] 정보 왕국의 이웃 나라 외동딸 공주가 숲속의 괴물에게 잡혀갔다. 정보 왕국에는 왕자가 N명이 있는데 서로 공주를 구하러 가겠다고 하는 상황이다. 정보 왕국의 왕은 다음과 같은 방법으로 공주를 구하러 갈 왕자를 결정하기로 했다. 왕은 왕자들을 나이 순으로 1번부터 N번까지 차례로 번호를 매겨, 1번 왕자부터 N번 왕자까지 시계 방향의 순서대로 동그랗게 앉게 했다. 그리고 1번 왕자부터 시계 방향으로 돌아가며 1부터 번호를 외치게 한다. 이 때, 어떤 왕자가 K(특정순서)번을 외치면 그 왕자는 공주를 구하러 가는 일에서 제외된다. 이러한 과정을 .. 2021. 12. 5.