본문 바로가기

PS22

[BOJ 16945번] 매직 스퀘어로 변경하기 [BOJ 16945번] 매직 스퀘어로 변경하기 https://www.acmicpc.net/problem/16945 16945번: 매직 스퀘어로 변경하기 1부터 N2까지의 수가 하나씩 채워져 있는 크기가 N×N인 배열이 있고, 이 배열의 모든 행, 열, 길이가 N인 대각선의 합이 모두 같을 때, 매직 스퀘어라고 한다. 크기가 3×3인 배열 A가 주어졌을 때, www.acmicpc.net 위의 문제는 3x3 배열 매직 스퀘어의 각 행의 합, 각 열의 합, 대각선의 합이 15라는 사실을 알고 풀어야 하는 문제입니다. 문제에 연결된 매직 스퀘어의 링크(위키백과) 설명을 제대로 읽지 못해 조건을 잘못 걸어 여러 번의 제출에도 해결하지 못하여 쓸데없는 시간을 소요하였습니다. 내가 생각한 풀이 - 1 우선 문제에 주.. 2023. 1. 29.
[BOJ 2447번] 별 찍기 - 10 [BOJ] 2447번 별 찍기 - 10 https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 이 문제는 전형적인 분할 정복, 재귀의 문제이다. 이 문제의 설명에서도 언급했듯이 재귀적인 패턴으로 별을 찍는 문제이다. 문제의 설명은 다음과 같다 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27,...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운.. 2021. 10. 12.
[BOJ 1011번] Fly me to the Alpha Centauri [BOJ 1011번] Fly me to the Alpha Centauri https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 이 문제는 이렇게 푸는 것이 확실한 것 같지만 더 이상 풀이에 진전이 없어서 해답을 본 문제이다.. 내가 생각한 풀이는 맞았으나 이를 코드로 구현하기가 꽤나 까다로웠던 문제였다. 내가 생각한 풀이 - 1 시작 위치 x 목표위치 y가 어떻든 중요한건 이동해야 할 거리가 중요하다. 이.. 2021. 9. 16.
[프로그래머스] 단어변환 문제 : 단어 변환 [ 문제 출처 ] https://programmers.co.kr/learn/courses/30/lessons/43163 [문제 풀이] 이 문제의 경우 주어진 문제를 그래프로 표현할 수 있어야 한다 즉 "그래프 모델링"을 해주어야 한다 어떤 것을 그래프의 정점으로 사용할 것이고 정점과 정점을 잇는 간선의 연결은 어떻게 정할 것인지 등이 있다 이 문제의 그래프 모델링 과정을 살펴보자! 정점은 어떤 것으로 사용해야 할 까? words에 있는 단어로 하면 좋지 않을까? 정점과 정점을 잇는 간선은 어떻게 연결시켜야 할까? 알파벳을 단 한 개만 바꾸어 해당 단어로 표현할 수 있다면 이는 연결 되었다고 볼 수 있다 즉 "hot" --> "hit" , "hot" --> "dot" 알파벳 차이가 단 .. 2020. 6. 17.
[SWEA 5653] 줄기세포배양 문제 : 5653. [모의 SW 역량테스트] 줄기세포배양 [문제 출처] : SW Expert Academy [모의 SW 역량테스트] - 줄기세포배양 이번 문제를 구현하는 데에는 생각 없이 그냥 단순하게 구현할 수 있었다 다만 변수의 명명을 명확하게 하지 않아 실수해 시간을 조금 많이 썼다 대충 변수 이름을 지어버려 의도치 않게 다른 큐를 사용해 디버깅 하느라 아까운 시간을 날렸다.. 이번 문제 같은 경우는 차량 정비소 문제와 미생물 격리를 풀기 위해서 썼던 자료구조와 시간의 흐름을 코드로 구현하는 방법이 매우 비슷하다고 느꼈다 [문제 풀이] 이번 문제를 풀 때 격자 (board)에 대한 언급이 없고 "시뮬레이션에서 배양 용기의 크기는 무한하다고 가정한다." 라는 조건 때문에 격자를 쓰지 않고 풀어야 하나.. 2020. 6. 17.
Codeforces Round #650 (Div. 3) [Contests] : Codeforces Round #650 (Div. 3) 아주 오랜만에 코드포스 콘테스트를 치러봤다 역시나 초보.. 답게 2문제를 풀었다 11: 45분쯤에 들어가 10분 안되게 늦게 풀기 시작했다 1~2번은 항상 빠르게 풀린다 나만 그런 것이 아니고 나와 비슷한 레이팅에 있으신 분들은 모두 그러할 것이라 생각한다 언제쯤 실력이 늘것인지.. 또 어떻게 해야 실력이 느는지 답답하고 한심하다.. [A Short Substrings ] 이 문제는 단순한 문자열 관련 구현 문제이다. 다음 예시는 문제에서 주어진 예시이다 A = " abac " 라고 하자 첫 번째 인덱스부터 2개씩 끊어서 써보자 "ab", "ba", "ac" 이것을 이어 쓰게 되면 새로운 문자열 B = "abbaac" 로 쓸 .. 2020. 6. 17.
[프로그래머스] [1차] 프렌즈4블록 문제 : Level2 [1차] 프렌즈4블록 [ 문제 출처 ] https://programmers.co.kr/learn/courses/30/lessons/17679 [문제 출처] 이 문제는 단순하게 보드를 순회하면서 블록이 2×2 형태로 4개가 붙어있을 경우 사라지면서 점수를 얻는 게임이다 블록이 지워진 후에 위에 있는 블록이 아래로 떨어져 빈 공간을 채우게 된다 이 2가지를 구현하면 되는 문제이다 밑에 그림과 같이 단순한 4개의 블록은 그냥 지우고 4점을 획득 하면 된다. 하지만 다음 그림은 조금은 아주 조금은 복잡하다고 생각 할 수 있지만 전혀 아니다 1번을 바로 지워 버리게 되면 2번에서는 4개를 인식 하지 못하게 되므로 2번에서는 지울 수 가 없다 즉 4점밖에 획득 하지 못하게 된다 지울 경우 단.. 2020. 6. 10.
[프로그래머스] 기능개발 문제 : Level2 기능개발 [ 문제 출처 ] https://programmers.co.kr/learn/courses/30/lessons/42586 [ 문제풀이 ] 이 문제의 카테고리가 스택/큐였기에 한참 스택을 이용한 풀이를 생각했었지만 스택 또는 큐를 사용해서 풀 필요 가 없다는 것을 알고 반복문 한 개를 가지고 문제를 풀었다 풀이의 시간 복잡도는O(n)으로 풀었다 주어진 예시 문제를 보자! 작업의 진도 현황을 나타내는 배열 : [93, 30, 55] 각 작업의 개발 속도를 나타내는 배열 : [1, 30, 5] 주어진 배열들을 이용해서 주어진 작업이 앞으로 얼마나 걸릴 것인지를 간단한 연산을 통해서 알 수 있다 [(100 - 93) / 1, (100 - 30) / 30, (100 - 55) / 5].. 2020. 6. 10.
[SWEA 5644] 무선 충전 문제 : 5644. [모의 SW 역량테스트] 무선 충전 [문제 출처] : SW Expert Academy [모의 SW 역량테스트] - 차량 정비소 [문제 풀이] 이번 문제는 시뮬레이션 + 완전 탐색 문제이다 이동 시간에 따른 이동 정보 즉 경로가 주어진다 시간의 정보는 주어지지 않고 또한 문제를 푸는 데 있어서 중요하지 않으며 주어진 이동 경로에 맞게 이동하면서 2명의 사용자가 얻을 수 있는 충전한 양의 합의 최댓값을 구하는 문제이다 TMI) 문제에서는 무조건 2명의 사용자가 이동하면서 얻을 수 있는 충전한 양의 합의 최댓값을 구하는 것이지만 여러 명의 사용자가 사용하는 것으로 문제를 구성했다면 조금 더 어려운 문제이지 않았나 생각이 된다. 그러한 문제 또한 사용자의 제한 범위가 크지 않다면 완전 탐색으.. 2020. 6. 7.