본문 바로가기

반응형

건승하고있어요/알고리즘

(32)
베르나르 베르베르 개미수열 이젠 자바 아니고 파이썬입니다.베르나르 이자식은 뭐 이상한 수열을 만들어가지고 def ant_numbers(number): str_num = '' count = 1 for idx in range(0, len(number)): if(idx+1 == len(number)) or number[idx]!=number[idx+1]: str_num += str(number[idx]) + str(count) count = 1 else: count += 1 return str_num num1 = input("숫자를 입력하세요: ") num = int(num1) start = '1' for i in range(0, num): print(start) start = ant_numbers(start)
[문자열사용하기] 단어공부 문제: 알파벳 대소문자로 된 단어가 주어지면 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단 대소문자를 구분하지 않는다.(출처: https://www.acmicpc.net/problem/1157) 정말 오랜만에 문제를 풀었다.고단하다. 내가 아무 쓸모 없는 사람인거 같은 기분이 들 때가 많다.그냥 다른 생각이 하고 싶어서, 다른 곳에 집중하고 싶어서 진짜 오랜만에 풀었다.오랜만에 하려니 생각이 잘 나질 않았다.어떻게 문제를 해결해 갈지 순서를 잘 정해서 풀어야 하는데, 그냥 또 막 풀다보니 변수 남발의 막무가내 코드가 나왔다. 잇힝어찌 풀 때마다 같은 얘기를 반복하는 기분이 든다. 아흥 1. 입력을 받는다.2. 입력받은 문자를 모두 소문자로 바꿔준다.3. 입력받은 문자..
[문자열사용하기] 크로아티아 알파벳 문제: 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 다음과 같이 변경해서 입력했다.크로아티아 알파벳변경čc=ćc-dždz=ñd-ljljnjnjšs=žz=예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. 입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.(출처:https://www.acmicpc.net/problem/29410) 음.....
[문자열사용하기] 다이얼 문제: 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 다른 숫자를 누르려면 다이얼이 원래 위치로 돌아가기를 기다려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다. 상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다. 할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 시간을 구하는 프로그램을 작성하시오.(출처: https://www.acmicpc.net/problem/5622) 원시적인..
[문자열사용하기] 상수 문제: 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 숫자 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.상수는 수를 다른사람과 다르게 거꾸로 읽는다. 예를 들어, 734과 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.(출처: https://www.acmicpc.net/problem/2908) 참으로 오랜만에 알고리즘을 풀어 보았따. 문제를 푸는 순서는 이렇게 했다.1. 세자리 숫자를 두 번 ..
[문자열사용하기] 알파벳찾기 / break문 문제: 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.(출처: https://www.acmicpc.net/problem/10809) 그냥 보자마자 후다닥 코드를 짰다. String S = scan.nextLine(); char A [] = S.toCharArray(); char B [] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; int idx = -1; for(int i=0 ; i
[1차배열] 평균점수 문제: 상현이가 가르치는 아이폰 앱 개발 수업의 수강생은 원섭, 세희, 상근, 숭, 강수이다. 어제 이 수업의 기말고사가 있었고 상현이는 지금 학생들의 기말고사 시험지를 채점하고 있다. 기말고사 점수가 40점 이상인 학생들은 그 점수 그대로 자신의 성적이 된다. 하지만, 40점 미만인 학생들은 보충학습을 듣는 조건을 수락하면 40점을 받게된다. 보충학습은 거부할 수 없기 때문에 40점 미만인 학생들은 항상 40점을 받게 된다. 학생 5명의 점수가 주어졌을 때, 평균 점수를 구하는 프로그램을 작성하시오.(출처: https://www.acmicpc.net/problem/10039) 40점을 받는다는게 원래 받았던 점수에 40점을 더해서 받는게 아니라 그냥 자체를 받는다는 말이당! 무난히 풀었다! 정수로만 답..
[1차배열] 음계 문제: 다장조는 c d e f g a b C 총 8개의 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, .... C 를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8부터 1까지 차례대로 연주한다면 descending, 둘 다 아니라면 mixed이다. 연주한 순서가 주어졌을 때, ascending인지 descending인지 아니면 mixed인지 판별하는 프로그램을 짜시오. 입력: 첫째줄에 8개의 숫자가 주어진다. 이 숫자는 문제 설명에서 설명한 음이며, 1부터 8까지 숫자가 한 번씩 등장한다. (출처: https://www.acmicpc.net/problem/2920) 그냥 12345678 치면 ascending 87654..

반응형