Koala - 7기/기초 알고리즘 스터디

문제 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다. 출력 첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다. 예제 입력 1 복사 3 예제 출력 1 복사 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 문제풀이 n을 입력받으면 n!개의 줄에 걸쳐 모든 순열을 순차적으로 출력하면 된다. 반복문을 사용해야 하나..? 생각이 들었는데 뭔가 이런 문제들만을 위한 방법이 따로 있을것 같아 구글링해봤더니 역시 대표적인 문제유형 중 하나였다. vectorv(n); // 입력받은 n의 크기만큼 배열을 생성하며, 동시의 각 배열의 값을 0으로 초기화해주는 코드다. (next_permut..
문제 매일 밤, 정인이는 상근이에게 이메일을 보낸다. 정인이는 자신의 이메일이 해킹당할 수도 있다는 생각에, 내용을 항상 암호화해서 보낸다. 정인이가 사용하는 암호 알고리즘은 다음과 같다. 정인이가 보내는 메시지는 총 N글자이다. 먼저, 정인이는 R A; a = strlen(A); for(int i=1; i
https://www.acmicpc.net/problem/2789 2789번: 유학 금지 아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만, www.acmicpc.net 문제 분석 1. 문자열을 입력받는다. 2. 각 문자가 CAMBRIDGE애 있는지 확인 3. CAMBRIDGE에 있으면 제거 4. 출력
문제 https://www.acmicpc.net/problem/3059 3059번: 등장하지 않는 문자의 합 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성되어 있고, 문자열 S가 주어진다. S는 알파벳 www.acmicpc.net 코드 풀이 차집합을 사용하여 전체 알파벳이 들어있는 집합에서 입력한 집합을 빼서 아스키코드로 변경했다.
문제 코드 n= int(input()) #테스트 케이스의 개수 for _ in range(n): A,B=map(str,input().split()) a = sorted(list(A)) b = sorted(list(B)) if a == b: print("%s & %s are anagrams."%(A, B)) else: print("%s & %s are NOT anagrams."%(A, B)) 풀이 구현 : 1. A와 B의 단어에서 사용된 알파벳을 하나하나 구분하여 리스트를 만든다. 2. A,B의 리스트를 알파벳 순서로 정렬한다. 3. 정렬한 리스트가 같다면 애너그램 성립 ! 실현 : 1. 우선 int(input())을 이용하여 테스트 케이스의 개수를 입력받는다. 2.
2504번: 괄호의 값 (acmicpc.net) 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net 소스코드 문제풀이 많은 시간을 투자했는데 결국 구글링의 힘을 빌려 알고리즘을 보고 구현만 직접 한 문제이다. 어떤 변수를 통해서 값을 곱하고 나눠야 하지않을까 까지는 접근하였는데, 너무 복잡하게 생각했는지 아니면 남은 한 문제만 빨리 해결하고 싶어서 그랬던 건지 직전 인덱스의 값만 보고 result에 더할 생각을 하지 못했다. 결국 내가 생각한 방법이 틀렸구나 모르겠다 하고 검색한 것인데 예상외로 너무 단순해서 ..
https://www.acmicpc.net/problem/3181 3181번: 줄임말 만들기 꿍은 만사가 귀찮아서 말을 하기도 귀찮아 한다. 그래서 하려는 말을 대신해줄 줄임말을 만들려고 하는데 나름 규칙을 만들었다. 하려는 말은 최소 하나 이상의 단어를 포함하는데 각 단어들은 www.acmicpc.net 문제분석 'i', 'pa', 'te', 'ni', 'niti', 'a', 'ali', 'nego', 'no', 'ili' 의 문자열이 입력값에 있으면 출력 시 앞글자를 따오면 안된다. 소스코드 a = input().split() li1 = ['i', 'pa', 'te', 'ni', 'niti', 'a', 'ali', 'nego', 'no', 'ili'] r = a[0][0] for i in range(..
코드 print("FA") 풀이 이 문제의 재미있는 점은 사실 모든 자연수는 FA라는 것으로 귀결된다는 점이다. 두 자리 이상의 자연수는 함수를 거듭할수록 작아지고, 한자리수가 되면 그 결과값이 바뀌지 않으므로 모든 자연수는 FA가 된다. 이 부분을 이용하여 어떤 입력이 들어오든 단순히 'FA'를 출력하는 코드를 작성하였다.
문제 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net '문자열의 앞과 뒤에 공백이 있을 수도 있다'는 문제 조건에 주의하여야한다. 코드 #1 sentence = input() print(len(sentence.split())) #2 바로 적용 print(len(input().split())) 풀이 - 'The Curious Case of Benjamin Button' 이라는 예제를 입력 받았을 때, split() 함수가 적용되면 sente..
https://www.acmicpc.net/problem/1673 1673번: 치킨 쿠폰 강민이는 치킨 한 마리를 주문할 수 있는 치킨 쿠폰을 n장 가지고 있다. 이 치킨집에서는 치킨을 한 마리 주문할 때마다 도장을 하나씩 찍어 주는데, 도장을 k개 모으면 치킨 쿠폰 한 장으로 교환 www.acmicpc.net 문제 코드 풀이 문제 해석이 조오끔 난해했다. 맨처음 n마리의 치킨을 시키면 그만큼의 도장이 또 생기고, 그를 k 번 나눈 몫만큼의 치킨을 또 시킬 수 있고, 그만큼의 도장이 또 생긴다. 이렇게 생긴 도장이 맨처음 시킨 치킨 n마리만큼의 도장//k 만큼을 합친 것 만큼 또 합쳐져 시킨을 시킬 수 있다. 이를 while 문으로 계속 돌려 끝까지 돌린다음 나온 총 먹은 치킨 값이 답으로 도출이 된다.
문제분석 분류 수학 구현 문제설명 입력 출력 소스코드
https://www.acmicpc.net/problem/11024 11024번: 더하기 4 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, N(1 ≤ N ≤ 100)개의 수가 공백으로 구분되어서 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 www.acmicpc.net 다른 문제들을 풀면서 어려운 풀이법에 머리를 쓰느라 그런지 이 문제가 가장 오래 걸렸다ㅜㅜ [문제 풀이 방법] - 입력한 테스트의 수만큼 반복하는 것이 포인트 - 자연수 입력받아야 하니까 리스트 자연수로 구성 - sum 함수 이용해 data 리스트에 있는 값들의 합 출력 고민한거에 비해 굉장히 간단한 문제!!
KauKoala
'Koala - 7기/기초 알고리즘 스터디' 카테고리의 글 목록 (4 Page)