about. What I learned
[백준 9375] 패션왕 신혜빈
#1 조건. [입력] 첫째 줄에 테스트 케이스가 주어진다. 테스트 케이스는 최대 100이다. 각 테스트 케이스의 첫째 줄에는 해빈이가 가진 의상의 수 n(0 ≤ n ≤ 30)이 주어진다. 다음 n개에는 해빈이가 가진 의상의 이름과 의상의 종류가 공백으로 구분되어 주어진다. 같은 종류의 의상은 하나만 입을 수 있다. 모든 문자열은 1이상 20이하의 알파벳 소문자로 이루어져있으며 같은 이름을 가진 의상은 존재하지 않는다. [출력] 각 테스트 케이스에 대해 해빈이가 알몸이 아닌 상태로 의상을 입을 수 있는 경우를 출력하시오. #2. 사고과정 최대값 최소값 확인. 테스트케이스 최대 100, 의상 수는 30 의상의 종류가 중요. 근거 : 같은 종류의 의상은 하나만 입을 수 있음. 이말은 이름이 달라도 종류가 같으..
[백준 1620] 포켓몬 도감 이다솜
#1. 조건 [입력] 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 물어봐도 괜찮아. 나는 언제든지 질문에 답해줄 준비가 되어있어. 둘째 줄부터 N개의 줄에 포켓몬의 번호가 1번인 포켓몬부터 N번에 해당하는 포켓몬까지 한 줄에 하나씩 입력으로 들어와. 포켓몬의 이름은 모두 영어로만 이루어져있고, 또, 음... 첫 글자만 대문자이고, 나머지 문자는 소문자로만 이루어져 있어. 아참! 일부 포켓몬은 마지막 문자만 대문자일 수도 있어. 포켓몬 이름의 최대 길이는 20, 최소 길이는 2야. 그 다음 줄부터 총 M개의 줄에 내가 맞춰야하는 문제가 입력으로 들..
[백준 2559] 수열풀기(프썸이를 사용하자)
#1. 조건 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 위한 연속적인 날짜의 수이다. K는 1과 N 사이의 정수이다. 둘째 줄에는 매일 측정한 온도를 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -100 이상 100 이하이다. 첫째 줄에는 입력되는 온도의 수열에서 연속적인 K일의 온도의 합이 최대가 되는 값을 출력한다. #2. 사고 과정 [나의 풀이] 백터를 사용해서 시도했다. 하지만 배열로 사용해도 충분했다. 백터를 사용할 때 문제는 하나씩 순서대로 뽑아낼 수가 없었다. 그래서 방법이 없었다. [좀 더 좋은 풀..
[백준 10988] 팰린드롬인지 확인하기
#1. 조건 첫 재줄에 주어진 문자열이 팬린드롬인지 확인하시오 #2. 사고 과정 이건 좀 쉬웠다. 하지만 함수를 기억하지 못했다. reverse함수가 있다. 사용법은 아래와 같다. reverse(시작점, 끝점); 이렇게 사용하면 시작 점 부터 끝점 까지 반대로 바꿀 수 있다. 쉽다. #3. 코드 #include using namespace std; string input, tmp; int main(){ cin >> input; tmp = input; reverse(input.begin(),input.end()); if (tmp == input) { cout
[백준 2979] 자동차 주차비 ( 카운팅 배열 사용하기)
#1. 문제 문제 상근이는 트럭을 총 세 대 가지고 있다. 오늘은 트럭을 주차하는데 비용이 얼마나 필요한지 알아보려고 한다. 상근이가 이용하는 주차장은 주차하는 트럭의 수에 따라서 주차 요금을 할인해 준다. 트럭을 한 대 주차할 때는 1분에 한 대당 A원을 내야 한다. 두 대를 주차할 때는 1분에 한 대당 B원, 세 대를 주차할 때는 1분에 한 대당 C원을 내야 한다. A, B, C가 주어지고, 상근이의 트럭이 주차장에 주차된 시간이 주어졌을 때, 주차 요금으로 얼마를 내야 하는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장..
[백준 10808] 알파벳 숫자 세기
#1. 조건 단어 길이가 100을 넘지 않는 문자열이 주어진다. 문자열은 모두 소문자로 주어진다. 단어에 존재하는 알파벳이 몇개인지 개수를 체크하라 #2. 풀이 [나의 풀이] 길이가 26인 빈배열을 생성하고 소문자 아스키코드를 초기화 시켰다(97 ~ 122). 그리고 string 으로 받은 문자의 길이만큼 For문을 돌리면서 아스키 코드와 단어의 알파벳을 비교하였다. [좀 더 좋은 풀이] 97부터 122까지 배열을 초기화 시키기 보다는 모든 알파벳의 첫번째 값인 'a'를 단어가 가진 알파벳에서 빼면 0~26중 하나의 값이 나온다. 이렇게되면 길이가 26인 배열만 선언해 놓고 문자에서 추출한 알파벳에서 'a'(97)를 빼주면 인덱스가 나온다. 해당 인덱스를 ++해주면 다른 행위를 하지 않아도 갯수를 셀 수..
[백준 2309] 일곱난장이 문제(브루트 포스)
일곱난장이 문제이다. #1. 조건 9명의 난장이가 들어왔다 기존의 인원은 7명이다. 7명의 난장이의 키의 합은 100이다. 각 난장이는 100보다 작다. 한줄씩 9명의 키가 입력된다. #2. 풀이 브루트 포스 방식으로 푼다. c++에서 제공해주는 next_permutation(시작, 끝)을 이용해 계속 석고 For문을 통해서 7까지만 합을 구한다. 합이 100이 되면 빠져나온다. #3. 코드 #include using namespace std; // 9명의 값이 들어갈 공간을 지정한다. int a[9]; int main(){ //아래 세줄의 코드는 속도 향상을 위해 사용한다. ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); // 우선 9..
AOP- 관점지향 프로그래밍
AOP : Aspect Oriented Programming 특정 관점에 기능을 추가할 수 있는 프로그래밍 기법이다.