태그 목록
전체보기 (82)알고리즘(80)python(73)프로그래머스(26)회전 초밥(2)백준(2)배열 복원하기(1)보석 쇼핑(1)떡 먹는 호랑이(1)백준 2559(1)위클리 챌린지 7주차(1)최고의 집합(1)백준 14226(1)거리두기 확인하기(1)수식 최대화(1)움직이는 미로 탈출(1)예산(1)백준 23288(1)백준 14890(1)DSLR(1)주사위 굴리기2(1)완주하지 못한 선수(1)백준 16954(1)2020년 정보처리기사(1)경사로(1)배열 합치기(1)파이프 옮기기 1(1)백준 18428(1)백준 2502(1)나무 자르기(1)캐슬 디펜스(1)백준 1806(1)수열(1)게임 맵 최단거리(1)백준 17406(1)백준 11728(1)트리의 지름(1)위클리 챌린지 8주차(1)성곽(1)배열돌리기1(1)토너먼트(1)다리 만들기 2(1)스타트 택시(1)거울설치(1)백준 16926(1)부분합(1)숫자 문자열과 영단어(1)백준 17135(1)카드 짝 맞추기(1)백준 2230(1)괄호 회전하기(1)백준 2003(1)백준 17070(1)백준 1717(1)집합의 표현(1)백준 17471(1)백준 11559(1)소수의 연속합(1)수들의 합(1)백준 1726(1)벽 부수고 이동하기 4(1)백준 6087(1)예상 대진표(1)백준 2805(1)백준 18258(1)빛의 경로 사이클(1)마법사 상어와 파이어볼(1)정보처리기사 실기(1)욕심쟁이 판다(1)압축(1)위클리 챌린지 6주차(1)오큰수(1)백준 2512(1)야근 지수(1)스티커 모으기(2)(1)징검다리 건너기(1)백준 1072(1)정보처리기사 3회 필기(1)백준 1644(1)현수막(1)이모티콘(1)백준 17472(1)백준 1697(1)N-Queen(1)레이저 통신(1)입국심사(1)불량 사용자(1)백준 17298(1)백준 15961(1)백준 9935(1)자물쇠와 열쇠(1)백준 1707(1)큐 2(1)위클리 챌린지 3주차(1)이분그래프(1)문자열 폭발(1)백준 1057(1)백준 1662(1)수 고르기(1)Puyo Puyo(1)표 편집(1)상어 중학교(1)모두 0으로 만들기(1)감시피하기(1)게임(1)배열돌리기4(1)백준 2151(1)백준 2234(1)백준 9019(1)키패드 누르기(1)합승 택시 요금(1)게리맨더링(1)백준 14716(1)백준 16967(1)백준 20056(1)섬 연결하기(1)도시 분할 계획(1)랜선 자르기(1)백준 21609(1)백준 2531(1)로봇(1)백준 16946(1)백준 1647(1)

[백준 23288] 주사위 굴리기2(Python)

주사위의 움직임에 집중해서 설명한다. 나머지 조건은 어렵지 않으므로 생략한다. 주사위는 아래와 같이 2차원 배열로 표현한다.여기서 밑면은 dice\[3]\[1]이다. 주사위를 만들었으니 주사위를 동서남북으로 움직여보자.주사위를 동쪽 방향으로 움직이면 주사위 윗면이 우측

2022년 1월 8일
·
0개의 댓글
·

[백준 20056] 마법사 상어와 파이어볼(Python)

최근에 화이자 1차 접종을 맞았다. 몸 상태가 별로인 상태에서, 내 자신을 테스트할 수 있었던 기회였다.불에 관한 정보를 배열에 저장하지 않고 딕셔너리에 저장했다. 딕셔너리의 key는 불이 있는 좌표고 value는 (질량, 속력, 방향)을 저장하는 리스트이다. val

2021년 10월 16일
·
0개의 댓글
·

[백준 21609] 상어 중학교(Python)

문제에서 제시된 내용대로 따라 구현하면된다. 블록 그룹의 경우 딕셔너리를 활용했다. key는 블록 그룹의 기준 블록을 가리키는 좌표이고 value는 해당 그룹에 속하는 블록들의 좌표들이 들어있는 리스트이다. 격자의 (0,0) 부터 (n-1, n-1)까지 순차적으로 탐색

2021년 10월 15일
·
0개의 댓글
·

[백준 2502] 떡 먹는 호랑이(Python)

1번째 날에 호랑이가 떡을 먹은 개수를 a, 2번째 날에 떡을 먹은 개수를 b라고 하자. 그러면 3번째 날에 떡을 먹은 개수는 a+b, 4번째 날에 떡을 먹은 개수는 a+2b, 5번째 날에 떡을 먹은 개수는 2a+3b, 6번째 날에 떡을 먹은 개수는 3a+5b... 이

2021년 9월 30일
·
0개의 댓글
·

[프로그래머스] 모두 0으로 만들기(Python)

어떻게 접근할 지 몰라서 해설을 봤다. 공식 해설을 참조했다. a의 모든 원소의 합이 0이되는 지 확인한다음, 0이 아니면 -1를 리턴하고 0이면 edges를 이용하여 트리를 만든다. 그리고 임의의 노드를 1번째로 탐색할 노드로 선택해서 dfs한다. dfs에서 나온 결

2021년 9월 29일
·
0개의 댓글
·

[프로그래머스] 위클리 챌린지 8주차(Python)

sizes를 순회하면서, 세로가 가로보다 크면, 가로와 세로를 바꿔준다. 이후 가로에서 가장 큰 값을 찾고, 세로에서 가장 큰 값을 찾은다음, 이들을 곱해준다.

2021년 9월 27일
·
0개의 댓글
·

[프로그래머스] 빛의 경로 사이클(Python)

grid의 길이가 전체 칸의 행의 길이, grid안 의 문자열 길이가 전체 칸의 열 길이와 같다. 예를 들어, grid가 \["SR". "LR"]이면 그래프는 아래와 같다.그 다음 고려해야할 것은 방향이다. 예를 들어 초기 진입으로 1행 1열에 해당하는 S에 들어갈 때

2021년 9월 19일
·
0개의 댓글
·

[백준 14890] 경사로(Python)

문제의 요구사항대로 구현하면된다. 연속적으로 동일한 낮은 값을 갖는 원소 수를 세는 방법이 낮은 값이 왼쪽에 있을 때와 오른쪽에 있을 때, 세는 방법이 조금 다르다. 짧게 설명을 하면, 낮은 값이 왼쪽에 있을 때는 원소 수를 1증가 시키고, 다음 재귀함수로 넘어간다.

2021년 9월 17일
·
0개의 댓글
·

[프로그래머스] 최고의 집합(Python)

n개의 원소들간의 차이가 거의 없으면서 합이 s일때, 각 원소의 곱이 최대가 된다. 따라서 우리가 해야할 일은 각 원소의 차이가 없으면서 합이 s를 이루는 원소들을 찾는 것이 목표다. 원소를 구하기 위한 간단한 방법으로 나눗셈이 있다. s를 n으로 나누면 몫과 나머지가

2021년 9월 16일
·
0개의 댓글
·

[프로그래머스] 위클리 챌린지 7주차(Python)

문제에서 입실과 퇴실이 동시에 이뤄지는 경우가 없다는 사실을 이용하자. 핵심은 현재 회의실에 있는 사람들을 leave의 순서에 맞게 퇴실 시킬 수 있다면, 그 순서만큼 퇴실시키고 그 다음에 입실을 진행하면 된다. 입출력 2번째 예제를 토대로 설명하면 아래와 같다.현재

2021년 9월 13일
·
0개의 댓글
·

[프로그래머스] 위클리 챌린지 6주차(Python)

문제의 조건 중 1,2,3은 큰 값이 먼저오고, 4는 작은 값이 먼저온다. 그래서 4의 경우에 대해 음의 부호를 붙여서 정렬하면 편리하다. 내 코드의 경우, 1,2,3에 음의 부호를 붙여서 정렬했다. 주의해야할 점은 승률을 계산할 때, //를 쓰면 안되고, 분모가 0이

2021년 9월 6일
·
0개의 댓글
·

[백준 15961] 회전 초밥(Python)

투 포인터와 슬라이딩 윈도우를 이용해 해결한다. 처음 딱 1번, 연속된 k개 초밥을 선형탐색하여 초밥의 종류 수와 해당 종류를 몇개 먹었는지 카운트한다. 이후 lp, rp를 사용할 것이기 때문에, 반복문이 필요없다.lp와 rp를 각각 1증가 시키기전에 lp에서 먹은 초

2021년 9월 2일
·
0개의 댓글
·

[프로그래머스] 보석 쇼핑(Python)

투 포인터로 해결해야할 것 같긴한데, 아이디어가 떠오르지 않아 다른 분의 문제풀이를 참고했다. 해당 글의 핵심을 아래와 같이 이해했다.구간\[a, b]에서 모든 종류의 보석을 살 수 있을 때부터 a+=1를 한다.(i.e. 구간의 범위가 좁아졌다.) 그리고 모든 범위의

2021년 9월 2일
·
0개의 댓글
·

[백준 17298] 오큰수(Python)

정방향으로 순회하면서 어떻게하면 스택을 이용하여 문제를 해결할 수 있을까하며 30분동안 고민했지만 아이디어가 떠오르지 않았다. 그래서 역방향으로 순회해서 문제 해결을 시도했는데 됐다.배열의 마지막 원소를 stack에 삽입하고 그 다음 원소부터 역방향으로 탐색을 시작한다

2021년 8월 31일
·
0개의 댓글
·

[백준 1662] 압축(Python)

문제의 요구사항을 지키면서 스택에 문자를 넣으면 메모리 초과가 발생한다. 예를들어 9(9(9(9(9(9(9(9(99999(1)))))))))가 입력으로 들어온다고 하자. 문자열 '1'이 99만 x 9^8개 찍힌다. 계산해보니 약 42조 5천억이다. 문제의 메모리 제한이

2021년 8월 31일
·
0개의 댓글
·

[백준 1644] 소수의 연속합(Python)

먼저 소수들을 에라토스테네스로 찾는다. 그리고 1번째 피연산자를 바꿔가며, 연속적으로 더해본다.(사용되는 피연산자들은 모두 소수) 그리고 그 결과가 N과 같다면 경우의 수를 하나 추가한다. 연속적으로 소수를 더하는 과정에서 N을 넘어버리게 된다면, 연산을 중단한 후,

2021년 8월 28일
·
0개의 댓글
·

[백준 2230] 수 고르기(Python)

문제에서 요구하는 것은 수열에서 두 수를 선택했을 때, 차이가 M이상이면서 제일 작은 경우를 구하는 것이다. 두 수를 선택하는데 있어, 수열의 형태는 중요하지 않다. 따라서 정렬 후, 문제 유형에서 제시된 것 처럼 투 포인터로 해결한다. 주의해야할 점은 같은 수를 고르

2021년 8월 28일
·
0개의 댓글
·

[백준 2531] 회전 초밥(Python)

회전 초밥에서 연속적으로 k개의 초밥을 선택하고, 각 초밥 번호를 집합에 넣는다. 집합의 특성상 중복되는 번호는 없다. 쿠폰 번호가 집합에 속하지 않는다면, 집합 크기 + 1 종류의 초밥을 먹었다. 쿠폰 번호가 집합에 속해있다면, 집합 크기종류의 초밥을 먹었다.시작점을

2021년 8월 27일
·
0개의 댓글
·

[백준 1072] 게임(python)

우리가 찾아야하는 답은 승률이 변하기 위한 최소 게임 판 수 이다. 따라서 최소 게임 판 수를 이분탐색으로 찾아본다.형택이가 앞으로 하는 게임은 전부 이기는 게임이다. 따라서 승률이 변하는 것은 승률이 오른다는 것을 의미한다. 반면, 아무리 게임을 많이 해도 승률이 전

2021년 8월 23일
·
0개의 댓글
·

[프로그래머스] 위클리 챌린지 3주차(Python)

하루 2시간씩 시도해서 3~4일차에 완료했다. 다른 사람들 코드보면 100줄 이내던데, 난 191줄이다..ㅠㅠ게임보드에서 빈칸들을 찾고 테이블에서 존재하는 모든 퍼즐조각을 찾는다. 각 빈칸에 대해 모든 퍼즐조각을 대입해본다. 만약 매칭이되면, 게임보드에서 퍼즐조각을 채

2021년 8월 23일
·
0개의 댓글
·