분류 전체보기

https://www.acmicpc.net/problem/10798문제 풀이1. 2차원 배열 형식으로 입력받기2. 각 줄의 최대 길이를 비교 (해당 문자열의 길이가 최대 길이보다 작다면 넘어갈 수 있도록)3. 출력할 순서로 정리할 리스트 생성4-1. 문자열의 길이가 최대길이보다 짧으면서 확인하는 위치가 비어있는 곳이라면 건너뛰기4-2. 위에서 해당사항이 없다면 출력 리스트에 추가5. 출력 리스트 출력문제 코드arr = []for i in range(5): arr.append(list(input()))max_length = 0for i in range(5): if len(arr[i]) > max_length: max_length = len(arr[i]) toPrint =..
10773번: 제로 (acmicpc.net)a= int(input())x=[]s=0for i in range(a): t=int(input()) if t!=0: x.append(t) else: x.pop()for i in range(len(x)): s+=x[i]print(s)가장 간단한 스택 문제이다. 입력받은 t가 0이 아니라면 스택에 쌓아주고 0이면 가장 최근 걸 pop() 해준다.
문제https://www.acmicpc.net/problem/1012코드#include #include #include using namespace std;int arr[51][51];bool visited[51][51];int m, n, k;void dfs(int a, int b) { // 방향 벡터 정의 (상하좌우) int dx[] = {-1, 1, 0, 0}; int dy[] = {0, 0, -1, 1}; visited[a][b] = true; for (int i = 0; i = 0 && nx = 0 && ny > t; while (t--) { memset(arr, 0, sizeof(arr)); memset(visited..
https://www.acmicpc.net/problem/18406문제문제풀이점수 N을 문자열로 입력받는다. 문자열 N의 길이는 항상 짝수이기 때문에 문자열의 자릿수를 기준으로 반으로 나눈다. 반으로 나누어 왼쪽 부분의 각 자릿수의 합과 오른쪽 부분의 각 자릿수의 합을 반복문을 통해서 구한다. 그 이후 왼쪽 부분의 각 자릿수의 합과 오른쪽 부분의 각 자릿수의 합이 같다면 "LUCKY"를 출력하고, 만약에 다르다면 "READY"를 출력한다.소스코드N = input()l = 0r = 0for i in range(len(N)//2): l += int(N[i]) r += int(N[-1-i])if l == r: print("LUCKY")else: print("READY")
https://www.acmicpc.net/problem/15903문제석환이는 아기다. 아기 석환이는 자연수가 쓰여져있는 카드를 갖고 다양한 놀이를 하며 노는 것을 좋아한다. 오늘 아기 석환이는 무슨 놀이를 하고 있을까? 바로 카드 합체 놀이이다!아기 석환이는 자연수가 쓰여진 카드를 n장 갖고 있다. 처음에 i번 카드엔 ai가 쓰여있다. 카드 합체 놀이는 이 카드들을 합체하며 노는 놀이이다. 카드 합체는 다음과 같은 과정으로 이루어진다.x번 카드와 y번 카드를 골라 그 두 장에 쓰여진 수를 더한 값을 계산한다. (x ≠ y)계산한 값을 x번 카드와 y번 카드 두 장 모두에 덮어 쓴다.이 카드 합체를 총 m번 하면 놀이가 끝난다. m번의 합체를 모두 끝낸 뒤, n장의 카드에 쓰여있는 수를 모두 더한 값이 ..
풀이#include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin.tie(NULL); int N; cin >> N; deque> dq; for( int i = 1; i > dq_num; dq.push_back(make_pair(i, dq_num)); } cout 0 ) { tmp--; for( int i = 0; i tmp; --i ) { dq.push_front(dq.back()); dq.pop_back(); ..
- 문제https://www.acmicpc.net/problem/14235- 알고리즘입력으로 0이 들어온 곳에서는 현재 가지고 있는 선물중에 가치가 가장 높은 선물을 주고, 줄 선물이 없다면 -1을 출력하면 되는 문제이다.이때, 현재 가지고 있는 선물중에 가치가 높은 선물을 선별하기 위해 우선순위 큐를 사용하였다. 파이썬에 내장되어있는 module을 가져왔고, 이 모듈에서 get을 할때 가장 낮은 숫자부터 get을 해주기 때문에, 선물의 가치에 -1을 곱하여 음수로 표현한 뒤 넣어주었다. 이렇게 하면 절댓값이 가장 높은 수부터 get이 되고, 나중에 출력할때 -1을 곱해서 출력하도록 구성하였다.이 문제에서 입력에 0 or a+1만큼의 숫자들로 입력이 진행되기 때문에, 리스트로 받아서 리스트의 첫번째 원소..
1. 문제2. 코드 n=int(input())ans = 0 while True : if n == 0 : break ans = (ans + n % 2) * 2 n = n // 2 print(ans//2)  3. 문제풀이1. n을 2로 나눈 나머지를 이전 값에 더하고 다시 2를 곱한다. (십진수 만들기)2. n // 2로 버림 나눗셈을 해서 업데이트 한다.3. 나눌 것이 없다면 종료 시키고 십진수(ans)를 버림 나눗셈해서 표현한다.
1874번: 스택 수열 (acmicpc.net)문제풀이1. 입력받을 수의 개수를 받음2. 원래의 수열을 original_series변수에 리스트 형식으로 저장한다.3. 10까지 커지는 변수 num 설정. 원래의 수열보다 num이 작은 동안 정렬한 리스트(stack 변수)에 추가해준다.(+ '+'도 출력리스트에 추가해줌)4. stack의 마지막 요소가 원래의 수열과 같을 때까지 pop()을 실행. (+ '-'도 출력리스트에 추가)- 여기서 원래 수열이 끝까지 도달했음을 확인하기 위해 original_count 추가 (1씩 더해주는 형태. 정렬의 횟수와 관계없이 원래 수열과 정렬하고 있는 수열이 몇 번째까지 맞았는지를 확인하게 해줌.)5. 스택이 존재하면 (즉, 정렬되지 않으면) 'NO'를 출력해준다.6. ..
문제https://www.acmicpc.net/problem/14561n진수는 base가 n인 수를 말한다. 예를 들어 십진수는 base가 10인 수이다. n진수의 수 AmAm-1Am-2…A1A0를 n진수로 표현해보면 AmAm-1Am-2…A1A0 = Am × nm + Am-1 × nm–1 + Am-2 × nm–2 + … + A1 × n1 + A0 × n0이다. 예를 들면, 12468은 12468 = 1 × 104 + 2 × 103 + 4 × 102 + 6 × 101 + 8 × 100로 표현할 수 있다.회문(Palindrome)이란 앞으로 읽으나 뒤로 읽으나 같은 글을 말한다. 예를 들면, madam, level, 12321은 회문이다. 반면에, Chung-ang이나 university, 54899는 회문..
문제풀이어떤 B진법에 대해 회문이 될 수 있는지 전수조사하고, 불리언 변수를 통해 결과를 출력한다. 코드
https://www.acmicpc.net/problem/11660DP를 이용해 푼 문제이다.  2차원 배열 arr은 문제에서 주어진 입력으로 만든 2차원 배열이고 배열 dp는 행별로 누적합을 구한 배열로 설정한다.그런다음, 행별로 누적합을 구한다. (dp[3][4]는 arr [3][1]부터 arr [3][4]까지 더한 것)  import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringT..
KauKoala
'분류 전체보기' 카테고리의 글 목록 (11 Page)