2로 나누어 떨어진다면 2로 나누고 3으로 나누어 떨어진다면 3으로 나눈다. 하지만 2와 3 두 수로도 나누어 떨어지지 않는다면 1을 뺀다.경우에 따라서는 2와 3으로 모두 떨어지는 수라도 2로 나누는게 더 최적일 수도 있고 3으로 나누는게 더 최적일 수도 있다. 따라
에라토스테네스의 체를 이용해 N까지의 배열을 만든 다음 소수면 True, 합성수거나 0, 1이면 False를 넣고 조건문을 돌려 True이면서 M이상 N이하의 범위를 만족한다면 값을 출력하도록 코드를 작성했다.그런데 N까지의 배열을 만들면 M미만의 값이 포함되어 공간이
dp0 = 0dp1 = 1dp2 = 2dp3 = 4dp4 = 7dp4 즉, 4를 1, 2, 3의 합으로 나타낼 수 있는 방법의 개수는 dp1 + dp2 + dp3의 합과 같다.이를 점화식의 형태로 나타내면 dpi = dpi-1 + dpi-2 + dpi-3이다.틀린 이유
0이 호출되는 횟수와 1이 호출되는 횟수를 규칙을 찾아 점화식을 세워 코드를 작성했다.💡소요시간 : 2m
n이 증가함에 따라 성립하는 규칙성을 찾아서 점화식을 코드로 작성하여 해결할 수 있었다.💡소요시간 : 1m
각 계단에서 얻을 수 있는 점수의 최댓값의 경우를 예시를 들어 나눈 후에 점화식을 세웠다.4번째 계단에 도착했을 때 얻을 수 있는 점수의 최댓값을 아래와 같이 경우를 나누어 생각해보았다.①. 1번째 계단을 밟고 그 다음 3번째 계단을 밟고 그 다음 4번째 계단을 밟은
1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열을 출력하는 문제인데 permutations을 이용해서 해결할 수 있었다.💡소요시간 : 1m
1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열을 출력하는 문제이다. combinations을 이용해서 간단힌 해결할 수 있었다.💡소요시간 : 1m
파도반 수열로 나열된 수들의 규칙을 파악하여 간단하게 해결할 수 있었다.💡소요시간 : 4m
규칙성을 찾기가 쉽지 않았다. 계속 그리고 적어가면서 규칙성을 찾아 점화식을 세워 코드로 작성할 수 있었다.💡소요시간 : 9m
자릿수를 늘려가면서 조건을 만족하는 이친수를 찾아보았는데 피보나치수열과 동일한 규칙성을 갖는 수열이 생기게 된다. 이를 이용해서 금방 해결할 수 있었다. 💡소요시간 : 2m
간단해보이는 큐 문제였는데 계속 버벅거렸다. 새로운 코드를 다시 작성해보면서 공부해야겠다고 느꼈던 문제였다. 맨 앞에 있는 원소가 큐의 최댓값이라면 빼주고 중요도를 1만큼 증가시킨다. 💡소요시간 : 38m
중복을 허용하는 중복 순열 문제다. 각각의 유형에 대해 사용할 수 있는 itertools패키지를 정리하면 아래와 같다.💡소요시간 : 3m
중복조합을 이용하는 문제였다.💡소요시간 : 1m
코드로 구현하는 과정이 너무 힘들었다. 맨 뒤에서부터 가능한 경우를 확인하여 얻을 수 있는 최대 금액을 구했다.테스트케이스에 나와있는 예제를 이용하자. 6, 7일차에 잡혀있는 상담의 소요 일수는 각각 4, 2일로 백준이는 8일차에 퇴사를 하기 때문에 상담을 할 수 없다
산술평균 : N개의 수들의 합을 N으로 나눈 값인데 이 때, 소수점 이하 첫째 자리에서 반올림한 값을 출력하는데 round()를 사용하면 된다.중앙값 : N개의 수들을 증가하는 순서로 나열하려면 sort()를 사용하고 중앙값은 (start + end) // 2로 인덱싱
처음엔 append()를 이용했는데 메모리 초과가 발생해서 다른 방법으로 접근했다.💡소요시간 : 7m
sum을 사용하면 반복문을 사용하여 i부터 j까지 합을 구하는 과정과 동일한 시간이 발생한다. 따라서 이 문제는 i와 j가 주어질 때마다 i부터 j까지 더하는 방식이 아니라 구간별 누적합을 미리 구해서 값을 가져오는 방식으로 접근하면 시간이 덜 소요된다.💡소요시간 :
수열은 사전 순으로 증가하는 순서로 출력해야하므로 리스트를 오름차순으로 정렬한 다음 permutations을 통해 조건을 만족시키는 수열을 출력할 수 있었다.💡소요시간 : 2m
의상을 종류별로 구분해서 딕셔너리에 저장한 다음 입을 수 있는 경우의 수를 세어주면 된다. 입을 수 있는 경우의 수는 딕셔너리에 저장된 value에 1을 더해 모두 곱해준 다음 1을 빼주면 된다.💡소요시간 : 20m
permutations을 이용해서 간단히 해결할 수 있었던 문제였다.💡소요시간 : 1m
행성계 진입/이탈 횟수를 카운팅하는 경우를 아래와 같이 나눠 생각해보았다.①. 출발점이 행성계 안에 존재하고 도착점이 행성계 바깥에 존재하는 경우②. 출발점이 행성계 바깥에 존재하고 도착점이 행성계 안에 존재하는 경우행성계 진입/이탈 횟수를 카운팅하지 않는 경우는 아래
중복조합과 정렬을 이용하는 문제였다.💡소요시간 : 1m
딕셔너리를 이용해서 문제를 해결했다.💡소요시간 : 4m
탐색 범위를 효율적으로 좁혀 나가는 이분 탐색에 대한 문제다.중간값을 정한 후 해당 중간값이 지방의 예산요청값보다 작으면 그대로 더해주고 만약 지방의 예산요청값보다 크다면 지방의 예산요청값을 더해준다.for문을 돌려 N개 지방의 예상 총 예산이 총 예산 M보다 작은 시
조합을 이용하는 문제였다.💡소요시간 : 1m
중복순열을 이용하는 문제였다.💡소요시간 : 1m
파이썬은 실수를 부동소수점 방식으로 표현하는데 부동소수점은 매우 큰 실수를 정확히 표현할 수 없는 문제가 발생한다. combinations을 이용하면 정밀도 부분에서 손실이 발생할 것이라고 생각해 DP를 이용해서 각 숫자의 factorial값을 저장한다.
이전 포스팅에 있었던 \[백준 11659번 구간 합 구하기 4]와 동일한 유형의 누적 합 문제였다. 누적 합은 sum과 슬라이싱을 이용한 방법보다 시간적인 측면에서 효율성이 우수하기 때문에 알아둬야 하는 좋은 PS방법이다.입력10 23 -2 -4 -9 0 3 7 13
정렬을 시켜준 다음 투 포인터로 접근해서 문제를 해결할 수 있었다.이 때, 1 ≤ i < j ≤ n을 만족시키는데 i, j의 등호 관계는 같을 수 없다는 점을 주의하자.투 포인터 방식은 문제를 보고 어떻게 포인터를 설정해야할지 고민한 후에 인덱스에러를 범하지 않고 정확
완전탐색 문제였다. 인접한 행끼리 서로 교환하여 확인하고 인접한 열끼리 서로 교환하여 확인해서 가장 긴 연속 부분을 골라서 최대 몇 개의 사탕을 먹을 수 있는지 구하는 문제였는데 계속 인덱스에러를 범하면서 여러 번 틀렸지만 코드를 수정하면서 어디가 문제인지 파악하여 해
next_permutation 사전순으로 다음에 오는 순열을 구하는 알고리즘이다. 역량 테스트에서 자주 나오는 부분이므로 로직을 짜는 방법을 알아두는 것이 좋을 듯하다. 사전순으로 정렬하였을때, 앞부분의 수가 뒷부분의 수보다 커야 사전순으로 정렬이 수행된 것이라고 할
이중 반복문과 슬라이싱을 이용해서 부분 문자열을 구한 후 중복을 제거하기 위해서 set()자료형을 사용했다.💡소요시간 : 6m
기약분수의 형태를 가지기 위해서 최대공약수를 적절히 활용해서 코드를 작성했다.입력2 7 3 5출력31 35$\\frac{2}{7}$ + $\\frac{3}{5}$ = $\\frac{2×5}{7×5}$ + $\\frac{3×7}{7×5}$ = $\\frac{10+21
문제를 잘못 이해해서 조금 시간이 걸렸던 문제였다. "파이프에서 물이 새는 곳은 신기하게도 가장 왼쪽에서 정수만큼 떨어진 거리만 물이 샌다." 입력4 3 1 2 3 4출력21지점부터 3지점까지 누수되는 곳을 막을 수 있는 테이프 1개, 2지점부터 4지점까지 누수되는
이전 포스팅에 있었던 next_permutation과 반대인 previous_permutation알고리즘에 대한 문제로 사전순으로 입력으로 주어진 순열의 이전 순열을 구하는 문제다. 다음 순열을 구해보니 정말 수월하게 접근할 수 있었다.5 3 4 1 2 5를 예시로 알
1로만 이루어진 수 1, 11, 111, 1111 등을 말한다. 1 = 0 × 10 + 111 = 1 × 10 + 1111 = 11 × 10 + 11111 = 111 × 10 + 1위의 규칙을 일반화하여 식을 세우면 num = num × 10 + 1이 된다.💡소요시간
2진수와 접근 방법을 동일하게 생각했다. 절댓값을 이용해서 해결할 수 있었다.\-13 = -2 × 7 + 17 = -2 × (-3) + 1\-3 = -2 × 2 + 12 = -2 × (-1) + 0\-1 = -2 × 1 + 11 = -2 × 0 + 1따라서, -13을
sum을 이용해서 구간 i:j의 합을 구하는 방법으로 접근하면 시간 초과가 발생한다. 따라서 이 부분은 누적 합 개념을 이용해서 접근했더니 해결할 수 있었다.💡소요시간 : 2m
예상 등수를 오름차순으로 정렬한 다음 예상 등수에서 실제 등수를 빼서 절댓값을 취한 다음 더해주는 방식으로 코드를 작성했다.💡소요시간 : 3m
정사각형의 성립 조건은 다음과 같이 두 가지가 존재한다.①. 사각형의 네 변의 길이가 모두 같아야 한다.②. 사각형의 두 대각선의 길이가 모두 같아야 한다.💡소요시간 : 9m
오름차순으로 정렬한다. 안테나로부터 모든 집까지의 거리의 총 합이 최소가 되려면 양쪽 끝에 안테나가 위치하면 안되고 가장 중앙에 안테나가 위치해야한다. 이 때, 집의 개수가 짝수냐 홀수냐에 따라 경우를 나눠줘야 한다.💡소요시간 : 5m
피보나치 수열을 구하는 과정에서 메모리 초과가 발생했다. 매우 큰 값을 저장하기 위해서 1,000,000,000으로 나눈 나머지의 값을 저장하는 코드로 바꿨더니 AC를 받았다.💡소요시간 : 7m
미리 만들어진 딕셔너리를 이용해서 제출했는데 계속 Keyerror가 출력되어 도대체 어떤 부분이 문제인지 잘 몰랐다. 구글링을 통해서 Keyerror 발생 이유를 찾아봤는데 딕셔너리에 없는 키를 참조하는 것은 불가능하므로 이런 경우 Keyerror가 발생한다. 딕셔너리
파일명은 필요하지 않으므로 .을 기준으로 뒤에 있는 확장자를 찾아서 딕셔너리에 저장한 후 딕셔너리를 확장자 이름을 기준으로 오름차순 정렬한다.💡소요시간 : 2m
"실제 로마 숫자에서는 IX는 9를 의미하지만, 이 문제에서는 11을 의미한다." 이 부분에서 찾을 수 있는 것은 로마 숫자를 우리가 사용하는 아라비아 숫자로 변환할 때 앞에서부터 더하는 방식이라는 것이다.또한 이 문제에서 주어진 조건으로 "순서는 신경쓰지 않는다."는
리스트를 사용해서 뒤에 중복되는 학번이 존재하면 앞에 있는 학번을 제거하는 방식으로 접근했지만 시간초과가 발생했다.딕셔너리를 사용했다. 만약 앞에 입력했던 학번이 뒤에 존재한다면 앞에 있는 학번의 번호를 뒤에 있는 학번의 번호로 갱신한다. 그 다음 딕셔너리를 value
삼각형의 결정 조건에 따르면 삼각형을 만들기 위해서는 가장 긴 변의 길이가 나머지 두 변의 길이의 합보다 작아야 한다.N개의 빨대 중에 3개의 빨대를 선택했을 때, 정렬하여 가장 뒷부분에 있는 빨대로 만들면 삼각형의 세 변의 길이의 합의 최댓값을 구할 수 있다.💡소요
n의 값의 범위는 1 ≤ n ≤ 10,000,000이다. 수가 매우 커질 수 있기 때문에 마지막 자리만 출력하라고 조건을 줬는데 이 때, 마지막 자리를 출력할때 문자로 취급해서 \[-1]을 출력하는 방법도 있지만 10으로 나눈 나머지를 출력하면 맨 마지막 자리를 출력할
정렬 후 중앙값을 찾으면 되는 문제다. 이 때, 원소의 개수가 짝수일 때와 홀수일 때 중앙값을 찾는 과정이 다른 것에 초점을 맞추고 접근했다.\[백준 18310번 안테나]와 동일한 유형이다. 💡소요시간 : 2m
계산 방법을 이용해서 접근했다. A에서 K로 가는 방식은 매우 복잡하기 때문에 K에서 A로 가는 역방향 접근 방식을 선택했다. 문제에서 주어진 연산 방식을 역방향 연산 방식을 적용하면 다음과 같이 바꿀 수 있다.①. 연산1 : 정수 A에 1을 더한다. → 정수 K에서
1번 컴퓨터부터 탐색을 시작해서 1번 컴퓨터와 연결된 컴퓨터들을 2차운 리스트를 통해 확인하면서 특정 컴퓨터에 처음 방문하게 된다면 이를 카운팅하여 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 계산하는 방식으로 코드를 작성했다. visualizer를 사
형택이가 시행한 게임 횟수 X의 범위는 1 ≤ X ≤ 1,000,000,000으로 브루트포스 알고리즘으로 접근하면 엄청난 시간이 발생하게 된다. 따라서 이분 탐색으로 접근해야한다고 생각했다.질문게시판에 있는 내용을 참고했는데 100을 먼저 따로 곱해주거나 아니면 이긴
key = lambda를 이용해서 우선순위를 부여하여 정렬을 수행했다.💡소요시간 : 7m
정렬을 하지 않은 입력받은 배열 그대로의 상태에서 두 값을 비교하지않고 배열 A를 내림차순 정렬하고 배열 B를 오름차순 정렬하여 두 값을 비교했다. 좋지 못한 방식이다..💡소요시간 : 7m
처음에 좌표(x1, y1)와 좌표(x2, y2) 사이의 거리 distance를 구할 때 math.sqrt()를 사용한 다음에 int()를 사용해서 정수형으로 변환했는데 이 방법이 문제가 되었다. R을 int단위로 버림하는 순간 더 이상 거리의 개념으로 볼 수 없기 때문
문자열을 다루는 문제였다. 문자열에 대한 문제에 대해서 조금 헤매는 경향이 있는 것 같다.태그의 사용유무, 알파벳과 숫자, 그 외의 기호 등에 따라서 조건문을 달리 해서 겨우 해결할 수 있었다.①. isalpha 함수문자열의 구성이 모두 알파벳인지에 대해서 확인하는 함
처음엔 그리디 알고리즘으로 접근해서 푸는 문제로 생각해서 도전했는데 시간 제한이 0.5초가 주어진걸 보고 그리디가 아닌 것 같다고 생각해서 결국 모든 경우를 탐색하는 브루트포스 알고리즘을 이용했다.탐색 범위를 줄이기 위해 제곱근을 이용해서 탐색을 진행했다.💡소요시간
from itertools import permutations을 이용해서 작성했는데 역시 메모리초과가 발생했다. 입력으로 주어지는 문자열의 최대 길이는 50으로 순열로 가능한 경우의 수를 전부 나타낸다면 엄청난 메모리가 소요되어 메모리초과가 발생하는 것으로 보여진다.이
한 걸그룹 내에 있는 인원들을 어떻게 넣어줘야할지 고민을 많이 했다. 이 문제를 풀면서 한 가지를 알게 되었다. 딕셔너리는 key와 value로 구성되어있다. 나는 여태까지 key 하나에 value 하나가 대응되는 것으로만 알고있었는데 그 개념을 완전히 깨버린 문제였다
정수 X와 구성이 같으면서 X보다 큰 최초의 수를 출력해야하므로 permutations를 오름차순 정렬 수행한 다음 찾아줘야한다.💡소요시간 : 14m
이 문제의 위에 나와있는 소스코드의 의미를 해석하는 부분에서 많은 시간이 걸렸다. 소스코드를 보면서 어떤 것을 구해야하는지 알아냈고 이 문제의 의미는 다음과 같다."N의 약수(단, N은 제외) 중에서 가장 큰 약수를 구하려면 몇 번 감소시켜야 하는가?"N의 값의 범위는
처음에 개의치않고 바로 접근했다가 바로 WA를 받고 신경을 써야하는 부분을 찾기 시작했다.💡소요시간 : 17m
중량 키트 순열을 모두 구한 다음에 하루가 지날때마다 하나의 키트를 사용하고 K만큼 중량을 감소시켰을때 500밑으로 내려가는 경우가 존재한다면 멈추고 아니라면 끝까지 돌려서 가능한 경우를 카운팅해주는 방식으로 코드를 작성한다.💡소요시간 : 14m
이전에 풀었던 \[백준 1676번 팩토리얼 0의 개수] 문제에서 풀었던 방법이 바로 생각나서 문제를 해결할 수 있었다.N을 5로 나눈 몫을 더해줘서 N이 0이 되는 순간까지의 몫들을 더한 값을 출력하면 된다.💡소요시간 : 10m
보정평균과 절사평균을 구현하는 과정은 어렵지 않았는데 결과를 출력하는 부분에서 소수점 오차로 인해서 계속 WA를 받았다. 질문게시판에 있는 소수점 오차에 대한 질문 글을 읽고 이해할 수 있었다.만약 예를 들어 0.5의 경우를 생각해보자. 만일 이 값이 0.4999999
처음엔 구간별 합계를 이용해서 코드를 작성했으나 시간초과가 발생했다.1일부터 M일간 일을 해서 버는 최대 이익을 출력하면 된다. M = 3이면 1~3일간의 일급의 합, 2~4일간의 일급의 합... 이런 식으로 나가는 것이다. 따라서 처음에 1~M일간의 일급을 미리 구한
슬라임을 합쳐서 얻을 수 있는 점수의 최댓값을 구하는 문제다. 정렬을 수행해서 맨 뒤의 큰 값 2개를 가져와서 두 값을 더한 값을 다시 리스트에 추가하고 두 값을 곱한 값을 점수로 더해준다.💡소요시간 : 7m
오름차순 정렬을 수행한 후 뒤에서부터 K개의 수를 골라서 조건대로 점수를 계산해주면 된다.💡소요시간 : 8m
조합을 함수로 구현하여 문제를 해결할 수 있었다.💡소요시간 : 12m
재귀를 통한 피보나치 함수의 호출 횟수를 구하는 문제였다. 규칙만 잘 찾으면 쉽게 해결이 가능하다.💡소요시간 : 10m
돌의 개수가 1~N개 사이가 주어졌을 때 두 사람 모두 자신이 이길 수 있도록 완벽한 플레이를 했다고 가정했을 때 누가 이기는지 경우를 따져보았다.표를 통해서 정리하면 다음과 같다.💡소요시간 : 17m
두 사람이 완벽하게 게임을 하는 것을 전제로 두었을 때 결과를 예측하는 코드를 작성해야한다.돌의 개수가 홀수개라면 항상 상근이가 이기게 되고 돌의 개수가 짝수개라면 항상 창영이가 이기게 된다는 것을 알 수 있었다.💡소요시간 : 6m
처음에 문제를 풀었을 때 한 가지 고려하지 못한 점이 있었다.예를 들어 1121이 적혀있는 카드는 이 카드의 시계수가 1112로 앞에서 이미 세어주었기 때문에 1121을 시계수가 될 수 없다. 나는 이 조건을 고려하지 못해서 처음에 10이 나왔어야 하는 답이 계속 11
중복된 소수가 나올 수 있다. 이 경우를 고려하지 않으면 출력 초과 오류가 발생하게 된다.처음에 출력 초과가 발생해서 무엇이 문제인지 확인하고자 질문게시판을 참고했는데 다음 반례가 나와있어서 어디가 문제인지 알 수 있었다.입력52 2 2 2 2출력2즉, 소수 2가 5번
문자열 S에 나타나는 0과 1의 빈도의 절반만큼 지워줘야한다.이 때 주의할 점은 S'로 가능한 문자열 중 사전순으로 가장 빠른 것을 구해야 한다는 것이다. 나는 그냥 별 생각없이 sort()를 사용했는데 바로 WA를 받았다.질문게시판에 있는 내용 중에서 하나 도움이 되
S와 K가 주어졌을 때, 합이 S이면서 배열의 원소의 곱이 최대가 되도록 해야한다. 이 때 정렬을 이용하면 수월하게 해결할 수 있다.💡소요시간 : 11m
이 문제의 알고리즘이 어떻게 이분 탐색이 나왔는지 잘 몰라서 처음에는 좀 당황스러웠다.이분 탐색 알고리즘을 구현한 함수와 bisect방식에 의한 이분 탐색 두 가지 방법을 이용해서 해결해보려고 노력했고 두 방법에 대해서 확실히 알 수 있었던 좋은 문제였다.아래의 코드는
비내림차순(오름차순)으로 정렬한 다음 누적 합 리스트를 만들어 범위에 맞는 값을 구해주면 된다.💡소요시간 : 3m
피보나치 수열의 10000번째 원소까지도 입력값으로 받을 수 있었기에 일반적인 점화식과 append로 접근하는 문제는 아니라고 생각해서 다른 방법을 생각하다가 나온 방법이 dp배열을 이용하는 방법과 재귀함수를 이용하는 방법 두 가지였다.💡소요시간 : 7m
A와 B를 포함한 범위 내에서 숫자 D를 포함하면서 소수를 만족시키는 수의 개수를 구하는 문제다. 이 때, 숫자 D는 한 자리 숫자이다.💡소요시간 : 17m
다이나믹 프로그래밍을 이용한 피보나치 수의 개수를 구하는 문제였다.주의해야 할 점이 있다면 dp\[1] = 1, dp\[2] = 2라는 점이다.💡소요시간 : 18m
1부터 N까지의 합을 구하는 문제였다. 다이나믹 프로그래밍을 이용해서 점화식을 구하는 방식으로 코드를 작성했는데 메모리 초과가 나와서 결국 1부터 N까지의 합을 구하는 식을 그대로 작성했다.💡소요시간 : 10m
💡문제접근 > * 전에 시도했다가 틀렸던 문제여서 다시 풀어보기 위해 도전했다. > * 첫 번째 단어에서 한 문자를 더하거나, 빼거나 하나의 문자를 다른 문자로 바꾸어 나머지 입력받은 단어와 구성을 같게 하는 경우 비슷한 단어라고 한다. 💡코드(메모리 : 3125
스트라이크와 볼의 개념을 정확히 이해하고 자릿수와 숫자가 모두 일치한다면 스트라이크 추가, 자릿수가 일치하지 않지만 숫자가 들어있다면 볼을 추가하고 입력한 스트라이크와 볼과 숫자가 일치하면 그대로 놔두고 만약 일치하지 않는다면 해당 숫자를 제거한다.💡소요시간 : 37
직접 표를 그려서 점화식을 세운 결과 나온 점화식은 아래와 같다.dpi = (dpi-1 + dpi-1 + dpi) % 1000000007테스트케이스1 입력 데이터를 기반으로 표를 그려보면 다음과 같다.입력3 2출력5입력4 5출력129💡소요시간 : 7m
가장 정중앙의 값을 1로 놓고 탐색하는 방법과 0, 0 즉, 왼쪽 상단에서부터 순차적으로 탐색하는 방법 두 가지가 존재하는데 후자의 방법을 선택했다.다른 사람이 작성한 코드의 효율성을 확인해봤는데 확연히 차이가 드러나는 것 같다.💡소요시간 : 39m
조합을 이용한 문제풀이💡소요시간 : 14m
## 💡문제접근 > * 병든 나이트가 이동할 수 있는 _**최대 칸의 개수**_를 구하는 문제로 각각의 경우를 모두 나누어 따진 후 조건 분기를 작성했다.
후위 표기식을 구현하는 방법은 다음과 같다.피연산자(숫자)이면 스택에 저장한다.연산자(기호)면 필요한 수만큼의 피연산자(숫자)를 스택에서 꺼내 연산을 실행하고 연산 결과를다시 스택에 저장한다.💡소요시간 : 11m
for문을 통한 이중 반복문으로 두 개의 스티커를 선택한 다음 총 4가지의 경우를 고려해서 문제를 해결했다. 머릿속으로는 이해했지만 코드로 구현하는 과정에서 많은 시간이 걸렸던 문제였다.💡소요시간 : 47m
방향 배열과 방향값을 설정해서 방향을 판단했다.반시계 방향으로 회전하는 경우 역순으로 진행되므로 북(0)에서 서(3)으로 가는 경우를 잘 고려해야한다. 따라서 반시계 방향으로 90도 회전하는 경우를 d = (d+3) % 4로 맞춰주었다.시계 방향으로 회전하는 경우 서(