본문 바로가기
  • 개발을 사랑하는 실실쟌의 블로그입니다

PS문제들30

[백준] 14500: 테트로미노 (with C++) 음, BFS로 풀려다가 메모리 초과났다. 종이 크가기 500 이하의 가로세로인데, 이게 꽤 커서 BFS는 안됐다. 조건을 좀 더 꼼꼼히 볼 필요가 있다... 또, 어떤 글에서 벡터를 array에 저장하는 방식으로 동서남북 블록을 탐색하는 것을 봤는데, 아주 괜찮은 것 같다. 아주 좋다. 가능한 노드들 탐색할 때 나도 이렇게 해야겠다. 문제 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 정수가 하나 쓰여 있다. 테트로미노 하나를 적절히 놓아서 테트로미노가 놓인 칸에 쓰여 있는 수들의 합을 최대로 하는 프로그램을 작성하시오. 테트로미노는 반드시 한 정사각형이 정확히 하나의 칸을 포함하도록 놓아야 하며, 회전이나 대칭을 시켜도.. 2022. 8. 23.
[백준] 14499: 주사위 굴리기(with C++) 주사위 굴리기 주사기 굴리위 주사리 굴위기 어떻게 풀었는지 모르겠다. 40분 남았길래 허겁지겁 읽고 후다닥 풀었다. 다행히 아주 나이스한 문제였다. 그냥 구현, 시뮬레이션 문제였다. 본인이 헷갈리지 않게 짜는게 중요한 듯 하다. 아 그리고 저번 포스팅에서 말했듯이 나는 x,y좌표가 필요할 때는 항상 원점을 왼쪽 상단으로 두고 가로를 y축, 세로를 x축으로 생각하면서 푸는데 마침 이 문제 조건도 그렇게 나왔다. 정말 운이 좋았다. 참고로 내가 뭔 대회를 나갔다가 왔다거나 한 건 아니다. 그냥 세시간 재놓고 두문제 푸는 연습 중이다. 문제 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 이 지도의 위에 주사위가 하나 놓여져 있으며, 주사위의 전개도는 아래와 같다. 지도의 좌표는 (.. 2022. 8. 22.
[백준] 12100: 2048(Easy) (with C++) 엄청 어렵지는 않았지만 조건을 잘못 줘서 디버깅을 좀 하느라 시간을 많이 썼다. 문제 자체가 BFS + 각 가능한 노드 계산(꽤 양이 된다.) 문제여서 시간이 초과될까봐 조마조마했다. 다행히 시간초과는 나지 않았다. 예전에 프로그래밍 연습이라는 과목에서 2048 게임 만들기를 파이널 프로젝트로 했었는데 그때 생각도 나고 좋았다. 시간이 참 빠른 것 같다. 그 때가 불과 2년 반 전인데, 그땐 c++도 모르고 BFS도 모르는 비전공자 인문대생이였던 내가 벌써 컴퓨터공학 전공자로 곧 졸업을 하게 된다. 참고로 나는 이 문제에 2시간 20분을 썼다. 디버깅 때문이다. 한번 풀 때 제대로 풀어야 한다. 다행히 다음번에 푼 문제를 40분만에 후다닥 풀어서 통과했다. 실전이 아닌데도 정말 심장 쫄리는 경험이었다. .. 2022. 8. 22.
[백준] 13460: 구슬 탐험 (with C++) 안녕하세요? 보실실입니다. 아무도 대답해주지 않지만 어차피 제 기록용이라 상관 없습니다. 저는 지금 아주 행복합니다. 왜냐하면 그저께까지 난 왜이렇게 바보일까, BFS 변형해서 푸는 그 문제 못풀었다고 슬퍼하고 있었던 것과는 반대로, 오늘은 BFS를 활용하는 문제를 순식간에 풀었기 때문입니다. 아 정말 행복하다. 나 조금은 성장하고 있을지도...데헷? 정신차려라 이 문제가 더 쉬운 거였다. 문제 https://www.acmicpc.net/problem/13460 스타트링크에서 판매하는 어린이용 장난감 중에서 가장 인기가 많은 제품은 구슬 탈출이다. 구슬 탈출은 직사각형 보드에 빨간 구슬과 파란 구슬을 하나씩 넣은 다음, 빨간 구슬을 구멍을 통해 빼내는 게임이다. 보드의 세로 크기는 N, 가로 크기는 M이.. 2022. 8. 21.
[프로그래머스] lv4. 호텔 방 배정 (with Swift) 오늘 lv3 경주로 건설이랑 이걸 풀었는데, 사실 나는 이것보다 lv3의 '경주로 건설'이 더 어려웠다. 이건 뭔가 컴퓨터 시스템 중에 비슷한 과정이 일어나는 부분이 있었던 것 같은데... 자세히 기억이 안난다. 컴구 아님 시프인데 기억이 안나는 거 보니 아마 컴구에서 배웠거나... 스스로 기억을 조작한 듯 하다... 아무튼 그래서 아이디어를 빨리 떠올릴 수 있었고 푸는데 거의 30분도 걸리지 않은 듯 하다.... 내가 그래프를 잘 못해서 그런것도 있지만 거의 대부분이 이게 왜 레벨4? 라고 느꼈을 만한 문제였다. 정작 푼 사람은 경주로 건설보다 호텔 방 배정이 더 적어서, 아닐 수도 있지만... 다들 너무 쉽기도 하고 어떤 알고리즘! 이렇게 분명히 쓰이는 알고리즘이 모호해서 안풀었을 수도 있을 것 같다.. 2022. 8. 19.
[프로그래머스] lv3. 경주로 건설(with Swift) DFS 대신 재귀로 구현하려다가 코드가 무지 복잡해졌다. ㅠㅠ 때려치고 다른 사람의 풀이를 봤다. ㅠㅠ 결국 DFS나 BFS로 풀면 되는 문제였다. 난 진자 왜 이렇게 바보인 걸까... 앞날이 걱정된다. 해결법 알려드립니다 : 그냥 열심히 하셈. 그래 이런 문제 한 100개 풀면 101번째는 풀 수 있겠지. 근데 100개 푸는 사이에 시간이 많이 흐를거다. 조급한 마음.ㅋㅋ 지금 당장 잘해지고 싶지만 뭐 어쩔겨... 접근법 한번 틀리면 진짜 시간이 많이 소모된다. 좀 더 깔끔한 구상에 시간을 쏟는 것이 필요하다. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/67259 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래.. 2022. 8. 19.