공부(220)
-
BOJ 15686. 치킨 배달
15686번: 치킨 배달 (acmicpc.net) 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 처음 이 문제를 봤을 때는 그리디 알고리즘을 떠올렸다. 가장 멀리 있는 치킨집들부터 없애면 손쉽게 정답을 구할 수 있을 것 같았다. 하지만 실제로 구현해보니 틀린 부분이 발생했다. 왜일까? 반례는 다음과 같았다. 5 1 2 1 0 1 2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 2 1 0 1 2 ans: 12 5 4 2 1 0 1 2 0 0 0 0 0 0 0 2 0 0 0 0 0 ..
2022.11.13 -
BOJ 12100. 2048 (Easy)
더보기 12100번: 2048 (Easy) (acmicpc.net) 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 이 문제는 예전에 유행했던 게임을 그대로 가져온 문제다. 다만 스와이프 할 때마다 랜덤한 위치에 숫자가 생성되는 기능은 구현하지 않는다. 5번 스와이프 했을 때 만들 수 있는 최대 수를 구하는 문제인데, 이제 n번 했을 때의 모든 경우의 수를 따져봐야 하는 문제는 백트래킹을 이용하면 된다는 것을 이해했다. 물론 다른 방법으로 n진수를 이용하거나 할 수 있지만 백트래킹이..
2022.11.13 -
코딩테스트에 필요한 파이썬 문법 정리
개인적으로 헷갈리거나 자주 까먹는 문법들을 정리해놓았다. 너무 뻔한건 안썼음. 숫자 컴퓨터는 2진법을 사용하므로 실수형은 정확한 계산이 되지 않는다. 소숫점 5째 자리 이전에 반올림 해줘야 된다. round는 그냥 하나로 쓰면 정수형이 나오지만 뒤에 소수 자리 파라미터를 넣으면 실수형으로 나온다. 리스트 메소드 메소드 역할 예시 시간복잡도 비고 insert() 특정 위치에 원소 삽입 a.insert(1, 2) # a[1]에 숫자 2 삽입 a.insert(3, [1,2]) # a[3]에 리스트 삽입 O(N) 삽입 위치에 따름 append() 맨 뒤에 원소 삽입 a.append(3) O(1) extend() 리스트 병합 test1 = [1, 2, 3] test2 = [4, 5, 6] test1.extend(..
2022.11.10 -
BOJ 18808. 스티커 붙이기
18808번: 스티커 붙이기 (acmicpc.net) 18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연 www.acmicpc.net 문제를 푸는 방식은 문제에서 다 알려주기에 그대로 풀면 되지만, 구현하는 과정이 매우 어려웠던 문제다. 풀이과정 1. 스티커의 갯수만큼 모든 지점에서 다음 스티커가 들어갈 수 있는지를 판단하는 함수 isAvail()을 실행한다. 2. 만약 한 방향에서 전부 실패하면 그 다음 방향으로 시도해본다. 3. 모든 방향에서 실패하면 다음 스티커로 넘어간다. 시간복잡도 스티커 100개, 노트북 뒷면 너비 최대 40*40, ..
2022.11.09 -
BOJ 15683. 감시 [백트래킹, 시뮬레이션]
15683번: 감시 (acmicpc.net) 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net SSAFY 코딩테스트까지 앞으로 2주 남은 이 시점에 알고리즘력 강화에 좀더 집중해보자 백트래킹 위 문제는 각 cctv의 방향이 여러개인 것이 포인트이며, 이로 발생하는 사각지대의 개수를 구해야 한다. CCTV는 여러개가 존재하며, 모든 방법을 확인해야하므로 백트래킹 문제임을 떠올렸다. 그러나 이 문제는 구현에서 정말 어려움을 겪었다. 보통 백트래킹은 변수 하나를 넣고 빼고 하는 식으로 했었는데 이건 배열을 ..
2022.11.08 -
[Youtube 클론코딩] 소셜 로그인 기능, 로그아웃 구현 (3)
[Youtube 클론코딩] 소셜 로그인 기능, 로그아웃 구현 (2) (tistory.com) [Youtube 클론코딩] 소셜 로그인 기능, 로그아웃 구현 (2) [Youtube 클론코딩] 소셜 로그인 기능, 로그아웃 구현 (1) (tistory.com) [Youtube 클론코딩] 소셜 로그인 기능, 로그아웃 구현 (1) 다양한 서비스에서 이미 존재하는 플랫폼의 ID로 로그인하는 기능을 구현 riam.tistory.com 이제 우리가 원하던 유저 객체와 이메일 객체를 받아왔으므로 로그인을 할 차례다. 우리는 앞서 직접 유저 정보를 입력해서 가입하는 방법을 구현했고, username과 패스워드를 이용해 로그인하며 email을 이용해 각 사용자를 구분했었다. 만약 github에서 로그인 할 때 이미 email..
2022.11.07