Algorithm & Data Structure

https://programmers.co.kr/learn/courses/30/lessons/42584

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

스택문제이긴 한데 2중 포문으로 해결이 됩니다.

 

https://www.acmicpc.net/problem/9501

 

9501번: 꿍의 우주여행

문제 꿍은 우주여행을 하고 싶어져서 우주여행을 계획하기 시작했다. 몇 가지를 고려해본 결과 우주여행에는 우주선의 연료와 목적지까지의 도착시간이 가장 큰 영향을 미치는것으로 파악됐다. 꿍은 엄청난 부자여서 우주선이 여러대가 있는데 각각의 우주선마다 최고속도와 연료소비율이 조금씩 다르다. 연료 소비율은 단위시간당 소비하는 연료의 양이다. 모든 우주선이 최고속도에 즉시 도달한다고 할 때 꿍이 가고싶어하는 곳까지 여행할 수 있는 우주선은 총 몇대인지 여러분이 대

www.acmicpc.net

간단한 수학문제였습니다.

(연료양/연료 소비율) X 속도 가 거리보다 크면 여행할 수 있는 우주선입니다.

 

'Algorithm & Data Structure > BOJ' 카테고리의 다른 글

[백준] 5567. 결혼식  (0) 2020.05.02
[백준] 11404. 플로이드  (0) 2020.05.01
[백준] 4179. 불!  (0) 2020.04.22
[백준] 5427. 불  (0) 2020.04.21
[백준] 1837. 암호제작  (0) 2020.04.20

[백준] 4179. 불!

2020. 4. 22. 16:20

https://www.acmicpc.net/problem/4179

 

4179번: 불!

문제 지훈이는 미로에서 일을 한다. 지훈이를 미로에서 탈출하도록 도와주자! 미로에서의 지훈이의 위치와 불이 붙은 위치를 감안해서 지훈이가 불에 타기전에 탈출할 수 있는지의 여부, 그리고 얼마나 빨리 탈출할 수 있는지를 결정해야한다. 지훈이와 불은 매 분마다 한칸씩 수평또는 수직으로(비스듬하게 이동하지 않는다)  이동한다.  불은 각 지점에서 네 방향으로 확산된다.  지훈이는 미로의 가장자리에 접한 공간에서 탈출할 수 있다.  지훈이와 불은 벽이 있는 공간

www.acmicpc.net

이전에 풀었던 불 문제(5427번 불)와 비슷한 문제였습니다.

  1. 우선 불을 동서남북 번지게 함
  2. 지훈이를 이동시킴

이런 방식으로 이전 문제와 동일하게 해결했습니다.

 

'Algorithm & Data Structure > BOJ' 카테고리의 다른 글

[백준] 11404. 플로이드  (0) 2020.05.01
[백준] 9501. 꿍의 우주여행  (0) 2020.04.23
[백준] 5427. 불  (0) 2020.04.21
[백준] 1837. 암호제작  (0) 2020.04.20
[백준] 5014. 스타트링크 (BFS)  (0) 2020.04.03

[백준] 5427. 불

2020. 4. 21. 17:05

https://www.acmicpc.net/problem/5427

 

5427번: 불

문제 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에는 불이 붙지 않는다. 상근이는 동서남북 인접한 칸으로 이동할 수 있으며, 1초가 걸린다. 상근이는 벽을 통과할 수 없고, 불이 옮겨진 칸 또는 이제 불이 붙으려는 칸으로 이동할 수 없다. 상근이가 있는 칸에 불이 옮겨옴과 동시에 다른 칸으로 이동할 수 있다. 빌딩

www.acmicpc.net

시뮬레이션 + BFS 문제 였습니다.

 

(상근이가 있는 칸에 불이 옮겨옴과 동시에 다른 칸으로 이동할 수 있다.)  << 동시에 라는 말에 고민하지말고 순차적으로 구현

(불이 옮겨진 칸 또는 이제 불이 붙으려는 칸으로 이동할 수 없다.)  << 이 지문때문에 불이 먼저 번지도록 구현

  1. 불 동서남북 번짐 -> 벽만 아니면 불이 번지도록
  2. 상근이 움직임 -> 빈칸인 곳 으로만 움직일 수 있음

상근이가 움직일 수 있는 곳을 담은 Queue가 텅 비었을땐 탈출 불가능한 것이고,

움직이는 도중 map밖으로 상근이가 이동하면 그때까지 걸린 총 시간을 출력하면 됩니다.

* 불과 상근이가 방문한 곳을 체크하는 boolean 배열을 2개 사용합니다.

 

'Algorithm & Data Structure > BOJ' 카테고리의 다른 글

[백준] 9501. 꿍의 우주여행  (0) 2020.04.23
[백준] 4179. 불!  (0) 2020.04.22
[백준] 1837. 암호제작  (0) 2020.04.20
[백준] 5014. 스타트링크 (BFS)  (0) 2020.04.03
[백준] 1748. 수 이어 쓰기 1  (0) 2020.04.02

[백준] 1837. 암호제작

2020. 4. 20. 20:10

https://www.acmicpc.net/problem/1837

 

1837번: 암호제작

문제 원룡이는 한 컴퓨터 보안 회사에서 일을 하고 있다. 그러던 도중, 원룡이는 YESWOA.COM 으로부터 홈페이지 유저들의 비밀키를 만들라는 지시를 받았다. 원룡이는 비밀 키를 다음과 같은 방법으로 만들었다. 개인마다 어떤 특정한 소수 p와 q를 주어 두 소수의 곱 pq를 비밀 키로 두었다. 이렇게 해 주면 두 소수 p,q를 알지 못하는 이상, 비밀 키를 알 수 없다는 장점을 가지고 있다. 하지만 원룡이는 한 가지 사실을 잊고 말았다. 최근 컴퓨터 기

www.acmicpc.net

소수와 수학 관련 문제였습니다.

 

1부터 K까지 의 소수들로 암호를 나누어 보면 됩니다.

주어진는 암호가 10의 100승 까지 이므로 문자열로 받아야 합니다.

 

* 문자열로 받은 암호를 소수로 나눌때

암호를 각 자리수 별로 나누었다가 합칠때, 자리수 별로 소수로 나누어 보면 됩니다.

 

소수를 구하는 알고리즘은 에라토스테네스의 체 알고리즘을 사용해야 시간초과에 안걸립니다.

참고 사이트 : https://velog.io/@hyeon930/%EC%86%8C%EC%88%98%EB%A5%BC-%EA%B5%AC%ED%95%98%EB%8A%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 

 

소수를 구하는 알고리즘

소수 2를 제외한 자연수 중 나누어 떨어지는 수가 1과 자신뿐인 수 소수를 구하는 알고리즘 가장 기본적인 방법 정의를 그대로 구현한 것으로 2 부터 주어진 수 - 1 까지의 자연수로 계속 나누어 본다. O(n)의 시간복잡도를 가진다. 하지만, 숫자가 주어질 때 마다 판별해야한다. 메모이제이션 2 부터 n 사이의 소수로 나누었을 때 떨어지지 않으면 수수...

velog.io

 

'Algorithm & Data Structure > BOJ' 카테고리의 다른 글

[백준] 4179. 불!  (0) 2020.04.22
[백준] 5427. 불  (0) 2020.04.21
[백준] 5014. 스타트링크 (BFS)  (0) 2020.04.03
[백준] 1748. 수 이어 쓰기 1  (0) 2020.04.02
[백준] 1024. 수열의 합  (0) 2020.04.01

https://programmers.co.kr/learn/courses/30/lessons/62048

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

규칙을 찾다가 인터넷 블로그 참조하여 풀었습니다.

최소공배수를 이용하여 풀면 되는 문제였습니다.

W, H : 1억 이하의 자연수 이므로 long 자료형으로 풀어야 합니다.

 

참조 블로그: https://leedakyeong.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%A9%80%EC%A9%A1%ED%95%9C-%EC%82%AC%EA%B0%81%ED%98%95-in-python

 

[프로그래머스] 멀쩡한 사각형 in python

파이썬으로 프로그래머스 풀기 :: 멀쩡한 사각형 문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은..

leedakyeong.tistory.com

 

[프로그래머스] 프린터

2020. 4. 17. 20:54

https://programmers.co.kr/learn/courses/30/lessons/42587

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

디큐를 사용해서 해결하였습니다.

 

순차적으로 자료를 poll하고 남은 디큐에 더큰 우선순위가 있으면 해당 자료를 뒤로 다시 넣습니다.

만약 제일 큰 우선순위면 그대로 냅두고 idx++(출력된 순서)해줍니다, 그 후 location과 일치하는지 검사하면됩니다.

 

https://programmers.co.kr/learn/courses/30/lessons/42578

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

HashMap 을 사용하는 문제.

해쉬맵의 키로 옷의 종류, 값으로 종류의 갯수 지정

 

* HashMap의 getOrDefault(key, default value) 메소드는

해당 key가 해쉬맵에 존재하면 해당 keyvalue를 반환, 존재하지 않으면 default  value반환

 

위 메소드를 통해

해쉬맵에 이미 존재하는 옷의 종류면 저장된 갯수+1, 처음 들어온 옷의 종류면 1 로 해쉬맵의 value 셋팅

경우의 수 구하는 방법 중 곱의법칙에 따라 종류의 갯수를 곱해준다.

종류의 갯수에 +1하는 이유는 해당 옷의 종류를 선택안할경우 생각,

옷을 아예 안입는 경우는 없으므로 (총 경우의 수) - 1

 

+ Recent posts