
https://www.acmicpc.net/problem/15651 같은 수를 여러 번 골라도 된다는 조건이 추가된 버전이다. 같은 수를 여러 번 골라도 되면 used 배열을 bt 함수의 파라미터로 줄 필요가 없다는거 아닌가? 라는 생각이 들어서 bt 함수에

https://www.acmicpc.net/problem/15652 같은 수를 여러 번 골라도 되지만, 수열이 비내림차순이어야 된다는 조건이 추가되었다. 여기서 비내림차순이라는 것은 사실상 오름차순이라는 말과 같다. [15650번](https://velog.io

https://www.acmicpc.net/problem/15654이전 문제들처럼 1~m까지의 수들로 수열을 구성하는 것이 아니라, 입력받은 n 개의 수들 중 m개의 수를 골라서 수열을 만들어야 한다.m개의 숫자를 골라서 수열을 만들어야 하니까, 음ㅇ므.

https://www.acmicpc.net/problem/1565515654번이랑 굉장히 비슷하지만! 오름차순인 수열만 출력해야 된다는 조건이 추가되었다. 따라서 bt 함수의 파라미터로 start를 추가해서 이전 요소보다 큰 요소만 선택하게끔 만들어줬다.

https://www.acmicpc.net/problem/15656문제의 조건을 살펴보면입력받은 n개의 수 중에서 m개의 숫자를 골라 수열 만들기같은 수를 여러 번 선택 가능오름차순이 아니어도 됨이라는 조건이 있다. 따라서 bt 함수에는 n, m, dep

https://www.acmicpc.net/problem/1565715656번이랑 똑같은데 비내림차순이라는 조건이 추가되었다.현재 숫자와 같거나 큰 숫자로 수열의 다음 수를 구성할 수 있게 하기 위해서 bt 함수의 파라미터로 start를 추가해준다. 이 값

https://www.acmicpc.net/problem/15663 구현 과정 이번에는 같은 수를 여러 번 고르면 안되며, 오름차순이 아니어도 된다. 중복 방지를 위해 used 배열을 선언하고 bt에 전달해준다. scanf하면서 0으로 초기화하는 방법보다 더 간

https://www.acmicpc.net/problem/15664이번엔 비내림차순 수열을 출력해야 된단다. 여태까지 푼 문제들에서 비내림차순이 나오면 bt 함수한테 start 파라미터까지 주는 방법으로 해결했었기 때문에 똑같이 해봤다. 그리고 15663번

https://www.acmicpc.net/problem/15665기본적인 bt 함수를 사용하되, 이전 문제들처럼 연속으로 중복된 수열이 출력되는 것을 방지하기 위해 before 변수를 사용했다.

업로드중.. https://www.acmicpc.net/problem/15666같은 수를 여러 번 골라도 되지만, 비내림차순 수열이어야 되기 때문에 15665번 코드에다가 start 변수까지 이용하면 된다.N과 M 시리즈가 드디어 끝났다!! 재귀는 아직도 쉽

https://www.acmicpc.net/problem/10972n개의 숫자로 만들 수 있는 순열은 총 n!개니까 for문을 1~n!까지 실행하면 되려나?for문으로 순열을 계속 검사하다가 (현재 순열 == nums 순열)이면 break하면 되겠다. 근데

https://www.acmicpc.net/problem/10973뒤에서부터 시작해 탐색하다가 처음으로 i > i+1인 i를 pivot으로 지정pivot의 오른쪽 원소들 중 pivot보다 작으면서, 가장 큰 값을 찾는다.그 원소 ⇄ pivot 교환 (이제

https://www.acmicpc.net/problem/10974복잡한 조건 없이 사전순으로 출력만 하면 되는 기본적인 순열 문제이다. 이를 위해 next permutation 알고리즘을 이용한다.먼저 nums 배열을 선언하고 1부터 n까지의 숫자를 채워준

https://www.acmicpc.net/problem/10819 구현 과정 재귀함수를 이용하면 된다. start == n 이면 주어진 배열의 끝까지 진행한 것이므로 현재 수열의 모든 원소의 차이의 합을 구하고, max보다 크면 max 값을 업데이트한다. st

https://www.acmicpc.net/problem/6603dp를 이용할까 하다가, 찾아보니까 dfs로 푸는 것이 더 간단해 보여서 푸는 김에 공부해보기로!쉽게 이해하려면 아래와 같은 예시를 생각해보면 된다.ex. 미로에서 길을 찾는 경우, 길이 막

https://www.acmicpc.net/problem/1759사전순으로 출력하려면 아스키 코드를 이용해 비교해야겠구나!라는 생각이 들었다.

https://www.acmicpc.net/problem/14226화면에 있는 이모티콘 수, 클립보드에 있는 이모티콘 수, 현재 시간을 한번에 관리할 수 있게 State 구조체를 만든다.이미 처리되었는지를 체크하기 위해 visited\[MAX]\[MAX]

https://www.acmicpc.net/problem/11725 참고-트리 개념문제에서 '루트 없는 트리'라는 조건이 주어졌다. 트리는 사이클이 없이 모든 정점이 연결되어 있는 '그래프'라고 할 수 있기 때문에 루트가 없을 수 있다!따라서 이 문제는 트

https://www.acmicpc.net/problem/2164'제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다.' 이 말을 보고 큐를 떠올릴 수 있어야 한다. 제일 위에 있는 카드를 버리는

https://www.acmicpc.net/problem/1629참고숫자가 딱 봐도 커보이길래, long long 형을 써야 되는 줄 알았는데 알고보니 주어진 숫자 범위가 int에 들어간다. int -2,147,483,648 ~ 2,147,483,647lon

https://www.acmicpc.net/problem/1629참고숫자가 딱 봐도 커보이길래, long long 형을 써야 되는 줄 알았는데 알고보니 주어진 숫자 범위가 int에 들어간다. int -2,147,483,648 ~ 2,147,483,647lon

https://www.acmicpc.net/problem/2751\[참고 - sys 써야하는 이유](https://lute3r.tistory.com/240처음엔 그냥 단순하게 sort() 함수를 써서 구현하면 되는 줄 알았는데 에러가 떴다. 문제에

https://www.acmicpc.net/problem/11723집합의 기본적인 연산을 수행하는 문제다. 파이썬에는 set()를 사용해 집합을 만들 수 있지만, c에는 집합을 나타내는 특정한 자료형이 없기 때문에 배열을 사용하고 중복 제거를 수동으로 하

https://www.acmicpc.net/problem/1475이 문제에서의 핵심은 6, 9는 숫자를 바꾸어 쓸 수 있다는 것이다. 주어진 방 번호에 6 또는 9가 총 2n개 있으면, 세트를 n개만 써도 되는 것이다. 나머지 숫자들은 중복되는 경우 중복되

https://www.acmicpc.net/problem/1789

https://www.acmicpc.net/problem/11399문제가 복잡해 보이지만 뜯어보면 사실 정렬만 하면 되는 간단한 문제다. 필요한 시간의 합의 최솟값은 시간이 오름차순으로 정렬된 경우에서의 합이다. 이를 위해 c에서는 qsort() 를 사용하

https://www.acmicpc.net/problem/1920c로 코드를 짤 때 처음에는 이중 for문을 이용해 입력받은 수, 찾으려는 수 배열을 모두 순회하는 방법을 택했다. 그랬더니 시간 초과가 나서 더 효율적인 방법이 뭐가 있을지 찾아봤다.이분 탐

https://www.acmicpc.net/problem/10816가지고 있는 전체 카드 중에서 해당 카드를 찾고, 해당 카드의 개수를 증가시키는 이 문제에서는 효율적인 검색 방법을 골라야 한다. 두 언어 모두 이분 탐색으로 구현해봤다.기본 이분 탐색 함수

https://www.acmicpc.net/problem/10989처음에 compare 함수와 qsort 함수를 사용해 정렬하는 방식으로 구현했는데, 시간초과가 떴다. 알고 보니 계수 정렬을 이용해 구현해야 되는 문제였다.계수 정렬은 정수/정수로 표현할 수

https://www.acmicpc.net/problem/1003문제에서 주어진 피보나치 재귀함수를 호출할 때, fib(1)의 경우에는 1을 출력하고 1을 리턴하며, fib(0)의 경우에는 0을 출력하고 0을 리턴한다고 한다. 이 경우, fib(n)을 호

https://www.acmicpc.net/problem/2579각 계단에서의 점수가 이전에 어떤 계단을 밟았는지에 따라 결정되기 때문에 dp를 이용해 푸는 것이 적절하다. 문제에서 연속으로 3개의 계단을 밟을 수 없다고 되어 있다. 예를 들면 4번째 계

https://www.acmicpc.net/problem/9461수열의 규칙만 구하면 쉽게 풀 수 있는 문제다. 직접 그림을 그려가며 10번째쯤까지 해보면, P(n)의 값은 두 값을 더해서 나오는 숫자라는 것을 알 수 있다. 표로 정리해보면 아래와 같다.

https://www.acmicpc.net/problem/11659C로 구현하면서 의식의 흐름대로 아래처럼 코드를 짰더니 시간 초과가 떴다.이 코드에서의 시간 복잡도는 O(N x M)으로 최악의 경우 연산 횟수가 매우 높아진다. 따라서 다른 방법을 사용해야

https://www.acmicpc.net/problem/1012DFS에서는 한 지점에서 시작해 가능한 멀리, 깊게 탐색한다. 이 문제에서는 배추가 심어져 있는 땅이라면, 그 땅의 상하좌우를 살펴보며 다른 배추가 있는지를 확인해야 하기 때문에 DFS를

https://www.acmicpc.net/problem/1541풀이 참고해당 식을 최소로 만들려면 뺄셈이 나오는 순간, - 이후부터 다음 -가 나오기 전까지의 모든 수를 괄호로 묶어주면 된다. 빼는 수가 많아져야지 전체 값이 작아지기 때문이다. 따라서 -

https://www.acmicpc.net/problem/1764두 개의 명단을 입력받은 뒤, 두 명단에서 겹치는 이름을 찾아 출력하면 된다.결국 교집합을 찾는 문제이므로 파이썬의 경우 set 자료형을 이용하면 된다.sys.stdin.read으로 데이터를

https://www.acmicpc.net/problem/1094입력받은 x가 64면 그냥 1을 출력하고 종료하면 된다. 아닌 경우에 대해서는, 자른 막대기들의 길이 합 sum(sticks)가 x가 아닌 동안 자르고 비교하고 막대기를 추가하는 과정을 반복해

https://www.acmicpc.net/problem/7785입력이 최대 10^6개까지 있을 수 있으므로, 를 통해 입력을 한꺼번에 읽어온다.받은 입력을 리스트에 저장해주면서, strip() 을 통해 문자열 양끝의 공백을 제거하고, split('\\n'

https://www.acmicpc.net/problem/9655dp를 이용하는 문제인줄 알았는데, 막상 규칙을 찾으니까 굳이 dp로 풀 필요가 없었다!\[게임 규칙]1\. 게임은 SK가 먼저 시작한다. 2\. 자리 차례에 돌을 1개 또는 3개 가져갈 수 있

https://www.acmicpc.net/problem/2530 파이썬을 오랜만에 했더니 정말 다 까먹었다.......위처럼 코드를 짜놓고 첫번째 if문 안에서 "d가 1분 미만이면 한 30초라고 쳐. 그럼 시작 시각의 초 부분에 더하면 되겠네. 근데 더했

https://www.acmicpc.net/problem/2914

https://www.acmicpc.net/problem/5355처음 짠 코드개선된 코드

https://www.acmicpc.net/problem/10156너무 쉬운 문제였다...최대한 간단하게 짜봤다!

https://www.acmicpc.net/problem/2476 그냥 의식의 흐름대로입력받고몇 개의 눈이 같은지 비교하고 각 케이스마다 조건에 맞게 돈 계산하고이전 단계의 max 값과 비교해 더 크면 업데이트, 크지 않으면 업데이트 x 이렇게 짰다. 그랬

https://www.acmicpc.net/problem/2754 적당히 조건을 나눠서 구현하는게 더 효율적일줄 알고.. 아래처럼 짜버렸다..조건문을 쓰면 쓸수록 시간복잡도가 올라간다. 이 문제처럼 특정 값과 값이 대응되는 케이스의 경우 딕셔너리를 사용하면

https://www.acmicpc.net/problem/5063

https://www.acmicpc.net/problem/10102처음에는 c에서 맨날 하던 것처럼 문자열의 각 글자를 요소로 가지는 리스트로 만든 뒤, 인덱스를 순회하며 A와 B의 개수를 세어야겠다고 생각하고 그렇게 for문과 if, else를 사용해 구현

https://www.acmicpc.net/problem/10886

https://www.acmicpc.net/problem/5717

https://www.acmicpc.net/problem/9610

https://www.acmicpc.net/problem/8958문자열을 입력받은 후 strip()를 사용해 앞뒤 공백을 제거해 안정성을 높인다. 인덱스를 사용하지 말고 문자열을 직접 순회한다! (c에서 하는 방식에 익숙해져 있어서 또 인덱스를 써버렸다...

https://www.acmicpc.net/problem/10214

https://www.acmicpc.net/problem/11557학교 이름과 소비한 술의 양이 짝으로 주어지고, 술의 양을 비교해 max를 찾은 다음 해당 학교의 이름을 출력해야 되므로 이 두가지를 짝으로 묶어서 저장해주어야 한다. 그래서 딕셔너리를 이용해

https://www.acmicpc.net/problem/5635여기까지 짜놓고 고민이 됐다. 한번에 두가지만 입력받는 경우면 딕셔너리로 처리하면 되는데 한번에 네개의 입력을 받으면? 아무래도 리스트로 짜야겠지? 근데 리스트로 만든 다음에 어떻게 처리해야 할

https://www.acmicpc.net/problem/1109811557번 양조장이랑 거의 똑같다!

https://www.acmicpc.net/problem/1408일단 여기까지는 짤 수 있었다. 근데 문제는... 이렇게 해서 실행해보면 이렇게 음수 시간이 출력된다. 이 음수 시간을 어떻게 처리할 것인가가 이 문제의 핵심이다. 그래서 내가 생각한 해결방법

https://www.acmicpc.net/problem/2748 구현 과정 전체 코드

https://www.acmicpc.net/problem/10984

https://www.acmicpc.net/problem/2442처음엔 for문 안에 for문 3개를 이용해서 각각 공백, 별, 공백을 출력하게끔 만들려고 했다. 그런데 생각해보니까 맨 마지막 공백은 출력하지 않아도 되는 거였다...문자열 곱하기를 통해 간단

https://www.acmicpc.net/problem/24432442번처럼 문자열 곱셈을 이용해줬다.

https://www.acmicpc.net/problem/2522

https://www.acmicpc.net/problem/2523

https://www.acmicpc.net/problem/2445

https://www.acmicpc.net/problem/2446

https://www.acmicpc.net/problem/5522

https://www.acmicpc.net/problem/10178

https://www.acmicpc.net/problem/9295

https://www.acmicpc.net/problem/10569

https://www.acmicpc.net/problem/2921규칙을 찾아내면 구현하는거 자체는 어렵지 않다!

https://www.acmicpc.net/problem/10995

https://www.acmicpc.net/problem/10991

https://www.acmicpc.net/problem/9085

https://www.acmicpc.net/problem/2747

https://www.acmicpc.net/problem/2577이 문제의 핵심: count("찾을문자") 함수 이용하기

https://www.acmicpc.net/problem/2592statistics 라이브러리를 사용하면 최빈값을 쉽게 구할 수 있다!라이브러리 없이 최빈값을 직접 구현해서 구하는 버전의 코드는 아래와 같다.엄청 복잡해진다...

https://www.acmicpc.net/problem/2953각 참가자의 점수 총합을 sum() 함수를 이용해 리스트에 추가한 후, 출력 시 max() 함수를 사용해 최대 점수 값, 최대 점수를 가지는 참가자의 인덱스를 찾아 출력하게끔 구현했다. 그런데

https://www.acmicpc.net/problem/1292a, b를 입력받기 -> b번째 수까지 규칙대로 리스트에 추가 -> 슬라이싱 이용해 sum() 출력하는 방식으로 구현했다.전체 수열의 a번째부터 b번째까지만 필요한데 굳이 리스트를 만들어서 첫번

https://www.acmicpc.net/problem/3460

https://www.acmicpc.net/problem/5054거리 최솟값을 구하는 로직은 다음과 같다.모든 상점이 일직선상 위에 있으므로, 가장 앞쪽에 있는 상점 ~ 가장 뒤쪽에 있는 상점 간의 거리를 구한 다음, 왕복 거리를 구하는 것이므로 x2를 해주

https://www.acmicpc.net/problem/2822문제를 보자마자 입력 받을때마다 리스트에 append해준 다음에, 슬라이싱을 이용해 총합을 구하면 되겠다는 생각이 들었다. 그런데 여기서 문제는... 그렇게만 구현하면 문제 번호를 출력하지 못하

https://www.acmicpc.net/problem/2587

https://www.acmicpc.net/problem/9076

https://www.acmicpc.net/problem/5176

https://www.acmicpc.net/problem/3058짝수만 먼저 뽑아 하나의 리스트로 저장한다면 거기서 바로 최솟값과 총합을 구할 수 있어서 훨씬 간단히 구현된다.

https://www.acmicpc.net/problem/5800

https://www.acmicpc.net/problem/10870

https://www.acmicpc.net/problem/5576입력받는 부분을 더 간단하게 만들 수 있다.

https://www.acmicpc.net/problem/10953

https://www.acmicpc.net/problem/10987

https://www.acmicpc.net/problem/11721

https://www.acmicpc.net/problem/10821엄청 간단한 문제! 정수의 개수 자체를 세는 것이라 int형으로 변환해줄 필요도 없다. 😮

https://www.acmicpc.net/problem/5218알파벳끼리의 거리를 계산한다 -> 아스키 코드를 이용해야 한다!파이썬에서 개별 문자를 아스키 코드로 변환하는 함수는 ord()이다. 이를 이용해 단어 속 각 문자를 아스키 코드로 변환하고, 문제

https://www.acmicpc.net/problem/11365for문을 이용해 각 암호를 끝에서부터 한글자씩 출력해 주었다. 이때 글자마다 줄바꿈이 일어나는 것을 방지하기 위해 print() 함수 안에 end=""를 추가해준다. for문을 이용하지 않고

https://www.acmicpc.net/problem/11170주어진 범위 내의 모든 숫자를 문자열로 변환한 후, 0의 개수(문자열로 취급)을 세어주는 코드를 작성하였다.count() 메서드를 사용하면 더 간단하게 나타낼 수 있다. 또한 for문을 한번만

https://www.acmicpc.net/problem/11719원래 파이썬 배우기 문제집 풀고 있었는데 151~200 편이 안보이는 관계로.. + c++ 배워보는 김에 백준까지 풀어보기로 결정했다.쉬운 문제지만 c++은 거의 처음이다 보니 조금 해맸다!해

https://www.acmicpc.net/problem/1924특정 날짜의 요일을 구하기 위해서는, 7로 나누었을 때의 나머지를 이용해야 한다. 즉, 1월 1일부터 그 날짜까지의 일수의 총합을 구한 뒤, 그것을 7로 나누면 된다. 이를 위해서 각 월별 일수

https://www.acmicpc.net/problem/2948

https://www.acmicpc.net/problem/10992별 찍기 문제는 주어지는 예시 몇개에 대해 공백 개수, 별 개수가 어떻게 달라지는지 직접 n=1, n=2, n=3을 대입해가며 규칙을 찾은 뒤 구현해야 한다. 첫번째 줄과 마지막 줄은 나머지

https://www.acmicpc.net/problem/2857큰 흐름은 아래와 같다.이름 입력받기입력받은 이름 안에 "FBI"가 있는지 검사하기있다면 FBI 요원 배열에 인덱스 저장, 총 요원수 1 늘리기다 끝나고 요원 수가 0이라면 "HE GOT AWA

https://www.acmicpc.net/problem/10173이 문제의 핵심은while (true) 문을 이용해 입력이 "EOI"일때까지 입력받기find("문자열") 을 이용해 "nemo" 찾기 (이때 조건 분기를 하지 않기 위해 모두 소문자로 변환해준

https://www.acmicpc.net/problem/5598이 문제에서는 아스키 코드를 활용해야 한다. 문자를 정수로 나타낼 수 있기 때문에, char형인 상태에서 바로 -3 과 같은 연산을 해서 복호화가 가능하다. 대신 뺄셈을 했을 때 음수가 되는 경

https://www.acmicpc.net/problem/5596처음에는 그냥 단순무식하게.. 다 입력받고 합 계산하고 max 출력하는 식으로 짰다.배열과 for문을 사용하면 위의 코드에서 입력 부분의 중복을 없앨 수 있다!

https://www.acmicpc.net/problem/9243
https://www.acmicpc.net/problem/1871 전체 코드

https://www.acmicpc.net/problem/1032이 문제의 핵심: 문자열 배열 이용하기!

https://www.acmicpc.net/problem/4999

https://www.acmicpc.net/problem/2845

https://www.acmicpc.net/problem/4504

https://www.acmicpc.net/problem/11575이 문제의 핵심은 알파벳을 정수로 변환하는 것이다.s\[j] - 'A'를 하면 자동으로 정수로 변환되어 계산이 된다!맨 마지막에 정수를 다시 알파벳으로 되돌리려면 다시 +'A' 를 해줘야 한다

https://www.acmicpc.net/problem/2774int n = s\[i] - '0' 를 통해 문자를 다시 정수로 변환해주었다. 0과 해당 문자의 아스키 코드만큼의 차이가 해당 문자가 나타내는 숫자가 된다.

https://www.acmicpc.net/problem/5586이 문제에서의 핵심은 substr 함수를 사용하는 것이다. substr 함수는 다음과 같이 사용한다.이 문제에서는 "JOI", "IOI"를 찾아야 하기 때문에, 두번째 파라미터로 3을 넣어줘야

https://www.acmicpc.net/problem/2702gcd, lcm 함수는 외워둬야겠다

https://www.acmicpc.net/problem/5656처음에는 모든 연산자에 대해 if (연산자) 안에 해당 연산자에 맞추어 실제로 a, b를 비교하는 코드를 짜려고 했었다. 그런데 아무리 생각해도 너무 코드 양이 많아서 이게 맞나...싶었다. 모

https://www.acmicpc.net/problem/2495오랜만에 코드를 짜니 모든걸 까먹었다...처음 짠 엉망 코드는 아래와 같다여기서의 문제점1\. current_count는 초기값이 0이 아니라 1이 되어야 한다. 문자가 하나일 때부터 세는 거니

https://www.acmicpc.net/problem/2484주사위의 각 눈이 몇번 나왔는지를 저장할 배열이 필요하다. 인덱스 0은 사용하지 않을 것이라서 int dice\[7] = {0};로 배열을 만들고 초기화해준다. 이후 주사위 입력을 받을 때는 입

https://www.acmicpc.net/problem/1026문제에 나와있는 이 핵심 로직을 구현하기 위해서는 A 배열, B 배열 각각을 정렬해야 한다. 가장 작은 s값을 찾기 위해서는 B의 큰 값에 작은 A값을 곱하고, B의 작은 값에 큰 A값을 곱해줘

https://www.acmicpc.net/problem/2789이 문제를 구현하기 위해서는 두 가지를 알아야 한다.단어를 순회하며 내에서 특정한 글자인지 아닌지를 검사하는 법단어에서 특정 글자를 삭제하는 법각각의 방법은 다음과 같다. (문자열 순회는 i =

https://www.acmicpc.net/problem/4470이 문제는... getline 사용법을 익히라고 있는 문제 같다. 이 문제에서는 n개의 문자열을 입력받기 때문에 문자열 배열 string line\[n] 을 선언해준 이후, for문을 돌면서 g

https://www.acmicpc.net/problem/5523

https://www.acmicpc.net/problem/10867이 문제를 구현하는 가장 쉬운 방법은 중복 없는 집합인 set를 이용하는 것이다. vector를 사용하듯이 \`이후 for문을 이용해 숫자를 입력받으면 자동으로 중복 없이 숫자가 저장된다!여기

https://www.acmicpc.net/problem/3059각 테스트 케이스마다 다음의 로직을 반복해야 한다:알파벳 길이만큼의 bool 배열을 만들고, 입력받은 문자열을 순회하면서 a~z까지의 알파벳 글자가 등장했는지 등장하지 않았는지를 저장해둔다. 이

https://www.acmicpc.net/problem/3049공식만 알면 풀리는 문제

https://www.acmicpc.net/problem/44931번 참가자가 이기는 경우는 모두 하나의 조건문으로 몰아놓고, 나머지는 2번 참가자가 이기는 걸로 계산하면 구현이 쉬워진다.

https://www.acmicpc.net/problem/10801문제에 주어진 조건을 차근차근 따라가면 쉽게 구현할 수 있는 문제다.

https://www.acmicpc.net/problem/10768

https://www.acmicpc.net/problem/5524c++에는 파이썬과 달리 문자열을 한번에 소문자/대문자로 바꿔주는 함수가 없다. 따라서 for문을 이용해 문자열을 순회하며 하나하나 바꿔줘야 한다...

https://www.acmicpc.net/problem/14500풀이 참고모든 테트로미노 모양에 대해 합을 구해보고, 그 중에서 제일 큰 값을 고르는 문제이다. 특별한 공식이나 꼼수 없이 모든 케이스를 실행해봐야 하기 때문에 브루트 포스에 해당된다.좌표 배

https://www.acmicpc.net/problem/6064문제 로직을 살펴보면 <x:y>는 다음과 같이 변한다. x는 쭉 늘어나다가 M이 되면 그 다음에 1로 변하고, y도 마찬가지로 쭉 늘어나다가 N이 되면 그 다음에 1로 변한다.즉 k번째 해

https://www.acmicpc.net/problem/10474

https://www.acmicpc.net/problem/10822(풀이 참고)문자열의 끝부분에 계속해서 숫자들을 붙여 나가다가, 쉼표가 등장하는 순간 숫자를 int형으로 변환해 누적합 변수에 더해줘야 한다.

https://www.acmicpc.net/problem/11006수식만 구하면 매우 쉽게 풀 수 있는 문제

https://www.acmicpc.net/problem/11023while문의 조건 안에 cin 입력문을 넣을 수 있다!이러면 입력을 받는 동안 계속해서 count에 누적합을 저장할 수 있게 되며 입력이 끝나면 자동으로 while문을 빠져나오게 된다.

https://www.acmicpc.net/problem/11024문자열 입력에 대해 익힐 수 있는 문제다. cin.ignore() 를 통해 첫 줄 이후의 개행문자를 안전하게 제거해준다. getline(cin, 문자열) 을 통해 공백이 포함된 문자열을 한번에

http://acmicpc.net/problem/5026처음에는 아래와 같은 코드를 짰었다. 그런데 저렇게 아스키코드를 가지고 연산하는 경우 숫자가 두자리 수가 되면 성립하지 않는다...그래서 아래처럼 stoi를 이용해 안전하게 파싱하는 방법을 이용해 다시

https://www.acmicpc.net/problem/5554차근차근 생각해보면 아주 쉽게 풀 수 있는 문제!

https://www.acmicpc.net/problem/5704알파벳 내의 각 문자가 등장했는지 등장하지 않았는지 저장하는 배열을 만든 뒤, 아스키코드를 이용해서 주어진 문자열의 각 문자에 대해 검사해야 한다.

https://www.acmicpc.net/problem/11091<cctype> 내의 isalpha() 함수를 이용하면 어떤 문자가 알파벳인지 아닌지 판별이 가능하다. 알파벳이라면 1, 아니라면 0을 리턴한다. 또한 tolower() 함수를 이용하면

https://www.acmicpc.net/problem/2954size_t 타입으로 문자열의 길이를 표현할 수 있다. for문에서 int i = 0 대신에 size_t i = 0 이런 식으로 넣어주면 된다. 입력받은 문자열의 각 문자에 대해먼저 정답 배열에

https://www.acmicpc.net/problem/11050이항계수 공식만 알면 금방 구현할 수 있다.팩토리얼을 main 내에서 하나하나 구하려면 코드가 너무 길어질 것 같아서 함수로 따로 만들어주었다.

https://www.acmicpc.net/problem/10823이 문제처럼 어떤 조건이 주어질 때 종료할지가 명시적으로 주어지지 않은 경우에는 while (cin >> s) 문을 이용하면 된다. 이렇게 하면 EOF까지 반복해서 cin에서 문자열 s를 공백

https://www.acmicpc.net/problem/9946아스키코드를 이용해서 배열에 저장해줘야 한다!

https://www.acmicpc.net/problem/8949\`이후 1의 자리부터 덧셈을 시작하기 위해 각 숫자의 맨 끝을 i, j에 저장해준다. 두 숫자 중 하나라도 남아 있는 경우 계속해서 반복하기 위해 while (i >= 0 || j >= 0)

https://www.acmicpc.net/problem/10179c++에는 round() 함수 같은게 없다...소수점 아래 n번째 자리까지 출력하고 싶다면 <iomanip>를 include 해준 다음에 cout << fixed <<

https://www.acmicpc.net/problem/5789중간 문자 두개만 비교하기 위해 (전체길이/2-1) 인덱스의 글자와 (전체길이/2) 인덱스의 글자를 비교한다.

https://www.acmicpc.net/problem/11134

https://www.acmicpc.net/problem/5532\`

https://www.acmicpc.net/problem/3034막대기가 상자 안에 들어가려면 상자의 대각선 길이와 같거나 작아야 한다. 굳이 루트를 씌울 필요 없이 막대기 길이의 제곱과 가로제곱+세로제곱 길이를 비교하면 된다.

https://www.acmicpc.net/problem/5217중복되지 않게 같은 쌍을 찾기 위해 i\*2 < n일때까지 반복해준다...

https://www.acmicpc.net/problem/3449주어진 입력형식을 보면 숫자를 문자열로 입력받아야 한다는 것을 알 수 있다. 이후 반복문을 이용해 문자열의 각 자리를 비교해가며 다른 경우 count를 1 증가시켜주면 된다.

https://www.acmicpc.net/problem/1371이렇게 명시적인 입력 종료 조건이 없는 문제의 경우 while (getline(cin, s)) (한 문자의 경우 while(cin >> s)) 을 사용하면 된다.

https://www.acmicpc.net/problem/4766이번 문제에서 기억할 것: c++에서의 소수점 자릿수 지정해서 출력하기 (참고)

https://www.acmicpc.net/problem/5361c++에서 소수점을 출력하는 법을 익히기 위한 문제였다!

https://www.acmicpc.net/problem/1940처음 작성한 코드는 아래와 같다. 다만 이렇게 하면 이중 for문을 사용함으로써 시간복잡도가 O(N^2)가 되기 때문에 코드를 개선해 보았다.vector 배열을 사용하였고, 양끝을 가리키는 변수

https://www.acmicpc.net/problem/5347<numeric> 헤더파일을 include 해주면 gcd, lcm 함수를 사용할 수 있다. 그러나 이는 C++17 이상에서만 지원되기 때문에 직접 구현하는 방법도 알아놔야 되겠다고 생각해서

https://www.acmicpc.net/problem/4597

https://www.acmicpc.net/problem/10829정수를 이진수로 변환하기 위해서는 해당 수를 반복해서 2로 나누면서 나머지를 추가해주고, 맨 마지막에 나머지로 이루어진 수를 뒤집어주면 된다. 이를 위해 아래처럼 코드를 짰다.반환형을 int로

https://www.acmicpc.net/problem/9550처음에는 사탕의 종류별 개수를 저장할 배열을 만들려고 했는데 굳이 배열로 만들 필요 없이 그때그때 정수를 입력받아 처리하면 된다.아이들이 모두 k개 이상의 사탕을 먹고싶어한다는 문제의 조건에 따

https://www.acmicpc.net/problem/11586

https://www.acmicpc.net/problem/4806명확한 입력 종료 조건이 없는 경우 while (getline(cin, s)) 를 이용해 입력을 받는다.

https://www.acmicpc.net/problem/10769

https://www.acmicpc.net/problem/3062

https://www.acmicpc.net/problem/11943

https://www.acmicpc.net/problem/11945

https://www.acmicpc.net/problem/11279최대 힙은 완전 이진트리 형태의 자료구조인데부모 노드의 값이 자식 노드의 값보다 항상 크거나 같고,root에는 항상 최댓값이 위치한다.이를 배열로 표현하면 부모-자식 간의 인덱스 관계는 다음과

https://www.acmicpc.net/problem/9507처음에는 피보나치는 당연히 재귀로 푸는거라고 생각해서 아래처럼 재귀로 코드를 짰다. 그런데 이 코드는 시간 초과가 떴다.알고 보니 재귀로 풀게 되면 큰 수에서는 너무 가지를 많이 뻗게 되어서 시

https://www.acmicpc.net/problem/4613

https://www.acmicpc.net/problem/2985

https://www.acmicpc.net/problem/9625규칙을 잘 살펴보면, n번째의 A 개수는 n-1번째의 B 개수 / n번째의 B 개수는 n-1번째의 A개수 + B개수인걸 알 수 있다. 이를 구현하기 위해 dp를 이용해보았다.

https://www.acmicpc.net/problem/5555기억할 점1\. C++에서 <string> 안의 find() 함수를 사용하면 문자열 안에서 찾을 수 있음2\. 문자열 자료형 string