본문 바로가기

전체 글

(2344)
(Python) - 백준(BOJ) 12780번 : 원피스 답 www.acmicpc.net/problem/12780 12780번: 원피스 바야흐로 지금은 대해적 시대, 밀짚모자 해적단의 선장 교정이는 어린 시절 우연히 잊지 못할 한 마디를 들었다. 그것은 바로 해적 왕 골.D.상윤이 자신이 모은 모든 보물인 원피스를 위대한 항 www.acmicpc.net 간단한 문자열 세기 문제였습니다. clue = input() word = input() print(clue.count(word))
(C++) - 백준(BOJ) 12605번 : 단어순서 뒤집기 답 www.acmicpc.net/problem/12605 12605번: 단어순서 뒤집기 스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 www.acmicpc.net 간단한 문자열 처리 문제였습니다. Code #include using namespace std; int t; string getOppositeSentence(string sentence){ int size = sentence.size(); string ans = ""; string tmp = ""; vector s; for(int i = 0; i < size; i++){ tmp += sentence[i]; i..
(C++) - 백준(BOJ) 2160번 : 그림 비교 답 www.acmicpc.net/problem/2160 2160번: 그림 비교 N(2≤N≤50)개의 그림이 있다. 각각의 그림은 5×7의 크기이고, 두 가지 색으로 되어 있다. 이때 두 가지의 색을 각각 ‘X’와 ‘.’으로 표현하기로 하자. 이러한 그림들이 주어졌을 때, 가장 비슷 www.acmicpc.net 구현해 brute force하는 문제였습니다. 풀이방법 1. 모든 그림 쌍에 대해 다른 정도를 비교해 계속 그림 정보를 갱신해줍니다. 2. 답이 한 개이므로 다른 정도 같은 여러 그림의 쌍을 생각할 필요가 없습니다. Code #include using namespace std; int n; vector picture; int minPic[2]; int minPivot = 0x7f7f7f7f; int g..
(Python) - 백준(BOJ) 5893번 : 17배 답 www.acmicpc.net/problem/5893 5893번: 17배 첫째 줄에 이진수 N이 주어진다. N은 최대 1000자리인 이진수이며, 0이 들어오는 경우는 없다. www.acmicpc.net 진법변환을 이용해 답을 출력하는 문제였습니다. bin(number) __builtin__ module에 포함된 function 으로 전달받은 integer 혹은 long integer 자료형의 값을 앞에 0b가 포함됨 이진수(binary) 문자열로 돌려줍니다. 출처: https://technote.kr/242 [TechNote.kr] 풀이방법 1. python의 str함수를 이용해 진법 변환후 17을 곱합니다. 2. bin함수를 이용해 10진법을 2번법으로 변환한 수를 출력합니다. Code n = int(i..
(C++) - 백준(BOJ) 9093번 : 단어 뒤집기 답 www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 문자열을 처리한 후 답을 출력하는 간단한 문제였습니다. 풀이방법 cin의 입력버퍼에는 정수 t와 \n이 들어갑니다. 이는 없어지지 않습니다. getline()에서 인자입력을 \n(default)으로 구분하기 때문에 cin의 입력버퍼를 비워줘야 됩니다. 따라서 cin.ignore()를 사용해 입력버퍼를 비워줘야 합니다. 1. test case 변수인 t를 입력받고 cin의 buffer를 비워준 뒤 한줄로 ..
(C++) - 백준(BOJ) 1756번 : 피자 굽기 답 www.acmicpc.net/problem/1756 1756번: 피자 굽기 월드피자 원주 지점에서 N개의 피자 반죽을 오븐에 넣고 구우려고 한다. 그런데, 월드피자에서 만드는 피자 반죽은 지름이 제각각이다. 그런가하면, 월드피자에서 사용하는 오븐의 모양도 몹시 www.acmicpc.net 이분탐색 구현방법을 생각해야하는 문제였습니다. 풀이방법 1. 이분탐색은 정렬이 되었을 때 할 수 있기 때문에 구불구불한 오븐을 정리해야합니다. 위에서 봤을 때 오븐의 중간층은 넓어도 그 위의 층들이 중간층보다 좁을 때 중간층이 튀어나온 부분을 확인할 수 없습니다. 여기서 착안해서 오븐을 위에서 봤을 때 위층부터 너비의 내림차순으로 오븐 너비를 수정할 수 있습니다. 2. 이분탐색 시행 : 이전에 놓았던 오븐의 너비 보다 ..
(C++) - 백준(BOJ) 1057번 : 토너먼트 답 www.acmicpc.net/problem/1057 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net 수학공식을 찾은 후 모든 경우를 검사하는 문제였습니다. 풀이방법 1. 김지민 임한수를 각각 a,b로 두어 입력받습니다. 2. a==1, b==2 또는 a==b일 때까지 2로 나누어줍니다. 이 때 a나 b가 홀수라면 2로나눈 후 1을 더해줍니다. 3. 2번과정을 시행한 갯수가 곧 round 갯수입니다. 따라서 이를 출력해줍니다. Code #include using namespace std; int num[100001];..
(Python) - 입출력 시간초과 해결법 백준, 프로그래머스 , codeforce, leetcode같은 online judge에서 문제를 풀다가 입출력부분에서 시간초과가 나는 경우가 꽤 흔합니다. 심지어 입출력을 빠르게 수행하도록 하는 코드부분만 바꿨을때 맞는 경우도 존재합니다. 이를 해결할 방법과 이유를 설명드리겠습니다. www.acmicpc.net/problem/1247 1247번: 부호 총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1≤N≤100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절댓값은 9223372036854775807보다 작거나 www.acmicpc.net 해당 링크에 대한 코드로 설명하겠습니다. 먼저 input()함수를 이용해 입력을 받을 때 매우 느려 10..