1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net POINT 짧은 시간 안에 효율적으로 푸는 게 포인트 Python에서는 교집합을 사용하여 풀 수 있습니다(풀이1). 하지만 교집합을 사용하지 않고도 풀어 봤습니다(풀이2). 교집합 python에서 set은 합집합, 교집합, 차집합, 대칭 차집합을 사용할 수 있다. a = set([1, 2, 3]) b = set([2, 3, 4, 5, 6]) # 합집합 print(a | b) print(set().union(a, b)) # 교집합 print(a & b) prin..
11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net POINT 등비수열 재귀 함수 (Recursion function) 함수 안에서 함수 자신을 또 호출하여 사용하는 함수 하노이 탑 n개의 원반을 옮긴다면, 1단계. 제일 큰 원반을 제외한 나머지 (n-1)개의 원반을 2번으로 옮긴다. 이동 횟수: f(n-1) 번 2단계. 제일 큰 원반 1개를 3번으로 옮긴다. 이동 횟수: 1번 3단계. (n-1)개의 원반을 3번으로 옮긴다. 이동 횟수: f(n-1) 번 결론. 다음과 같은 식이 만들어지며, 등비수열로 ..
로그인 www.acmicpc.net POINT dfs (깊이 우선 탐색) 바이러스가 있는 곳(2)을 기준으로, 주변에 바이러스를 퍼뜨린다. → 바이러스 주변 칸의 값이 0이면 2로 바꾸고 주변을 계속 탐색한다. (방문 처리) 풀이 1. 새로운 벽을 3개 세운다. 2. 바이러스를 퍼뜨린다. 3. 안전 지역의 최댓값을 계산한다. 4. 모든 곳에 벽을 세워 볼 때까지 1 ~ 3을 반복한다. from itertools import combinations n, m = map(int, input().split()) graph = [[0] * m for _ in range(n)] new_graph =[[0] * m for _ in range(n)] # 복사한 그래프 blanks = [] # 빈칸 위치를 넣은 리스트 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr POINT 삭제할 수 있는 조건은 복잡하지만 설치할 수 있는 조건은 비교적 쉽게 구현할 수 있습니다. 그러니 우선 삭제/설치한 다음에 매번 가능한 구조물인지 확인하고, 불가능하면 원상복구하도록 풀어봅시다. 기둥을 설치할 수 있는 조건 기둥의 좌표를 (x, y)라고 하면 세 가지 조건 중 하나를 만족하면 됩니다. 보를 설치할 수 있는 조건 보의 좌표를 (x, y)라고 하면 두 가지 조건 중 하나를 만족하면 됩니다. 풀이 # 설치물이 조건을 만족하는지 확인한다 def is_possible(result): for ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr * 효율성 테스트에 부분 점수가 있는 문제입니다. 라고 나와있으니 문제 그대로 풀면 분명 시간 초과가 나올겁니다. POINT 시간이 적게 걸리는 음식부터 공략한다! k를 초과하지 않는 선에서, 먹는 시간이 적은 음식부터 먹어치운다. → 시간이 적은 음식부터 나열하기 위해 우선순위 큐를 사용해보자. 한 음식을 다 먹는 시간이 k를 초과한다면, 원래 풀이대로 먹고 남은 시간만큼 번호를 센 후 반환한다. 시간은 작은 순으로 2번 → 3번 → 1번을 먹는다고 하면, 해당 음식을 다 먹는데 걸리는 시간은 위와 같습니다..
코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr POINT 사이클이 형성되는 경우 갔던 길을 다시 지나가야 할 때, 사이클이 완성된 것이다. → 즉, 지나간 길을 방문 처리 해야 한다. 서로 다른 사이클에서 동일한 방향으로 같은 길을 지나는 경우는 없다. 방향 바꾸기 & 격자를 벗어나 다시 되돌아오기 방향도 한 칸씩 회전하고, 격자도 한 칸씩 이동한다. → 둘 다 1씩 증가/감소시키되, 배열 크기로 나눠서 나머지를 구해주면 다시 처음으로 돌아온다. # 방향 바꾸기 direction..
- Total
- Today
- Yesterday
- node.js
- python
- Python3
- Spotify
- Unsplash
- fetch
- 동기
- 코딩테스트
- 코어자바스크립트
- flutter
- dfs
- backtracking
- rn
- React-native
- 코드분석
- 판례암기
- 키워드밑줄
- p5js
- DP
- 비동기
- 웅진IT
- React.js
- 다이나믹프로그래밍
- 백준
- React
- 프로젝트
- 파이썬
- 프로그래머스
- 코테
- 감시피하기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |