본문 바로가기

PS/BaekJoon

(105)
[C++/25565] 딸기와 토마토 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.단순한 공식을 도출해 문제를 푸는 것인줄 알았지만, 여러가지 조건을 생각해봐야하는 문제였습니다. 진짜 틀렸습니다만 1시간을 달리다가 문제를 풀었습니다. 정답비율을 떨어뜨리는데 일조했습니다.천천히 보겠습니다. 입력값은 n,m,k가 공백으로 주어지는데 1 내용은 이렇습니다. 어쩄든 딸기와 토마토를 가로든 세로든 한줄로 한 보드(n * m)에 심습니다. 그래서 어찌됐든 딸기와 토마토는 어떻게 심게되냐면?0. 토마토와 딸기 전부 겹치지 않는다. (k * 2)1. 토마토와 딸기를 한줄에 전부 다 심는 경우(딸기와 토마토가 전부 겹친다.)2. 토마토와 딸기를 십자가 모양으로 심는 경우 무조건 1개가 겹친다...
[C++/5766] 할아버지는 유명해! ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.할아버지께서 가장 많은 포인트를 얻어서 최고의 브릿지 선수로 선정되었습니다. 랭킹에 선수의 이름이 오를 때마다 선수의 포인트가 1포인트씩 오른다고 합니다.할아버지는 2등이 누군지 궁금해졌는데? N주동안 M명의 랭킹을 보여주게 되는데, M명의 랭킹은 무작위이다. 그렇다면? 제일 많은 랭킹권에 든 아이디가 1등일것이고 이것은 할아버지일 것이다. 하지만, 중복으로 나오는 사람도 있을 것이다. 2등으로 그렇다면 2등은 두명 이상이라면? 각 선수의 번호를 공백으로 구분해 오름차순으로 출력한다는 것이다.N,M의 범위는 500주 그리고 500명 이하이기때문에 매 주마다 랭킹에 든 아이디를 +1 포인트를 넣어주..
[C++/1790] 수 이어 쓰기 2 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.일단 입력값을 보자마자 일반적인 방식으로 풀 수 없다고 생각했다.N의 크기 (1 일단 12345678910111213141516...9991000 이런식으로 문자열을 생성할 수 있어야한다. 그래서 천천히 생각을 해보았다. 흠 여러여러 돌아다니다가 결국엔 이렇게 해결할 수 밖에 없지 않을까 생각했다.1개의 자리수 (1 ~9)2개의 자리수 (10~99)3개의 자리수 (100~999)4개의 자리수 (1,000~9,999)5개의 자리수 (10,000~99,999)6개의 자리수 (100,000~999,999)7개의 자리수 (1,000,000~9,999,999)8개의 자리수(10,000,000~99,999,..
[C++/31937] 로그프레소 마에스트로 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.이렇게 쉬운 문제가 왜 정답률이 29퍼밖에 안되지? 했던 나를 반성하는 시간이였고, 아침에 풀었더니 정신없어서 문제를 제때 풀지 못했던것 같습니다. 그래서 천천히 다시 글을 읽어보면서 문제를 해결했는데, 원인을 천천히 파악을 해보겠습니다.일단 간단하게 설명하자면? 첫번째 감염된 컴퓨터를 찾는 문제입니다. 그래서 이 문제에서 주어지는 입력값들은 이러합니다.컴퓨터의 개수 N, 파일 전송 로그의 개수 M, 컴퓨터의 개수 K가 주어지고, K개의 감염된 컴퓨터를 보여줍니다. 그리고 M개의 로그를 보여주게 되는데요? 여기에서 M개의 로그는 t의 시간에 a의 컴퓨터가 b의 컴퓨터에게 파일을 전송하는데 이때 감..
[C++/1347] 미로 만들기 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.약 1년전에 풀이했던 문제인데, 성공한줄 모르고 풀다가 로그인했을때 성공표시가 되어있었다..이 문제를 보고, 50글자가 최대이기 때문에 아무리 올라가도 아무리 내려가도 아무리 좌우로 가도 50을 벗어나지 않기 때문에, 현재 위치는 (50,50)으로 해두고 최고로 높이간 곳, 최고로 아래 또는 좌우로 간곳으로 이동마다 비교를해서, 최대 최소값을 구하고 그 범위안에 방문했다면 '.' 방문하지 않았다면 '#' 으로 표시해 배열을 그릴 수 있다. 그리고 1년전 문제풀이보다 지금이 더욱 깔끔하게 작성된것을 보면? 그래도 코드 짜는 능력이 조금은 발전했다고 볼 수 있을것 같다.실력이 오르는가 안오르는가 생각..
[C++/1660] 캡틴 이다솜 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.정사면체가 하나씩 증가하는 공식과 그리고 그 크기만큼 정사면체를 만들 수 있다면? 그건 하나의 정사면체가 된다. 우리는 최소의 정사면체를 만들어야 하기 때문에, 최대한 정사면체를 크게 만들고 나머지 값으로 최소한의 정사면체를 만들어야하는 문제를 갖고 있습니다.그래서 우리는 일단 개수따라 정사면체를 만들 수 있는지 알아야 한다. 그에 따른 공식은 아래의 코드와 같다. 그리고 이에 따라서 그 개수로 정사면체를 만들 수 있는 것이 된다.아래는 점화식이다. 추후에 좀 더 자세히 작성을 해봐야 겠다.. 너무 피곤햇일단 우리는 n개로 정사면체를 만들 수 있다는 것을 vector안에 차례로 추가해주었다.그 값..
[C++/30024] 옥수수 밭 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.애증의 BFS 입니다. 이 유형 문제를 예전에는 엄청 많이 풀었었습니다. 각설하고, 간략하게 문제를 요약해보겠습니다. 이 문제는 각 칸에 옥수수가 심어져 있는데, 옥수수의 가치가 1 부터 n * m 만큼 격자에 부여를 했습니다.그래서 민석이는 옥수수 밭 바깥을 돌아다니며, 인접한 칸에서 옥수수를 수확할 수 있는데 한정된 K그루의 개수만 획득을 할 수 있습니다. 항상 이런문제는 최고의 가치를 원합니다. 그래서 매번 최고의 옥수수를 수확해야합니다.그래서, 이 문제는 일단 민석이는 바깥에 있는 모든 옥수수에 접근이 가능하니 바깥에 있는 옥수수를 전부 우선순위 큐에 집어 넣습니다. 그 이유는 우선순위 큐..
[C++/28432] 끝말잇기 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.이 문제는 처음에 정답자가 많길래 도전을 했던 문제입니다. 슬쩍 문제를 읽어보니까 '?'의 앞 단어 맨 뒷글자 그리고 '?'의 뒷 단어 앞 글자만 알아내면 되는 문제더라고요? 그리고 중복되는 단어가 들어가면 안돼서 set을 사용해 중복 제거하기로 생각했습니다.그리고 나서 바로 제출을 했는데, outofbound 라는 에러가 발생됩니다. ?가 첫번째이거나 마지막이라면? 이라는 생각을 해서 첫번째면 앞에 단어를 못보고 마지막이라면 마지막 + 1 단어를 볼 수 없구나? 라는 생각이 들었습니다.그리해서 첫번째와 마지막일 경우의 수를 추가했습니다.그리고 나서, 제출을 했는데 98%에서 outofbound ..