목록알고리즘 (97)
It's easy, if you try
문제 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main_BOJ_2206_벽부수고이동하기 { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; static int N, M; static char[][] map; static int[][][] v..
문제 코딩테스트 연습 - 위장 programmers.co.kr 풀이 이 문제는 알고리즘 스터디에서 설원언니가 풀이해준 문제인데, 복습하면 좋을 것 같아 다시 풀어보며 공부한 후, 정리했다. from collections import Counter from functools import reduce def solution(clothes): count = Counter([category for name, category in clothes]) return reduce(lambda x, y : x * (y + 1), count.values(), 1) -1 먼저 서로 다른 의상의 조합의 수를 구하는 공식 clothes가 [[yellow_hat, headgear], [blue_sunglasses, eyewear]..
문제 풀이 import java.io.*; import java.util.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw= new BufferedWriter(new OutputStreamWriter(System.out)); public static void main(String[] args) throws IOException { int T = stoi(br.readLine()); for (int i = 0; i < T; i++) { Deque pw = new ArrayDeque(); Deque wait = new ArrayD..
문제 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 풀이 def solution(priorities, location): answer = 0 pi_list = [(p, i) for (i, p) in enumerate(priorities)] while pi_list: prior = pi_list.pop(0) # 밑에 코드 추가하니까 85점 -> 100점 if pi_list: p_list = [priority for priority, idx in pi_list] if p_list: if prior[0] >= max..
문제 풀이 n = map(int, input()) nums = list(map(int, input().split())) nums.sort() print(nums[0] * nums[-1]) 처음에 nums.pop(0) * nums[0] 로 풀었더니 당연히 ! 틀렸다. 배열의 마지막 요소를 얻어오기 위해 nums[-1] 을 사용하면 된다. 최초 발행 날짜: 2020-06-15
문제 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net 풀이 n, han, jimin = map(int, input().split()) answer = 0 while han != jimin: han -= han//2 jimin -= jimin//2 answer += 1 print(answer) 토너먼트를 이해하고 있다면 간단하게 풀 수 있는 문제 ! 지민과 한수에서 2로 나눈 몫을 뺀 값이 같아 졌을 때가 둘이 대결하는 때이다. 최초 발행 날짜: 2020-06-20
문제 풀이 import java.io.*; import java.util.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); static StringTokenizer st; static int A, B; public static void main(String[] args) throws Exception { int T = Integer.parseInt(br.readLine()); for (int i = 1; i B) { A /=..