본문 바로가기
728x90
반응형

전체 글188

[백준] 임스의 메이플컵?! 안녕하세요. 백준을 시작하면서 하고 싶었던 문제출제, 이후 하고 싶었던 개인 대회 개최를 할 수 있게 되었습니다. 개인 대회를 개최하되, 주제 및 아이디어들을 어떻게 선정할까 하다가 제가 20년동안(?) 플레이 해왔던 메이플스토리를 주제로 해보고자 하였습니다. 해당 대회는 제가 직접 개최하는 비공식 대회입니다. https://www.acmicpc.net/board/view/119615 글 읽기 - 임스의 메이플컵? 댓글을 작성하려면 로그인해야 합니다. www.acmicpc.net 언제 열릴진 모르지만 메이플컵이 곧(?) 개최될 예정이니, 많은 관심 부탁드립니다. PS) 전 메린이입니다. 2023. 6. 21.
배열 뒤집기 시간 측정 C++하시던 분이 JAVA를 시작하게 되면서 C++에 있는 reverse()에 대해 여쭤봤었습니다. 그러면서 갑자기 궁금한 내용이 있어서 포스팅을 하게 되었습니다. JAVA에는 뒤집기 함수가 없어 직접 배열을 만들어 뒤집거나 하는 방식으로 진행해야 합니다. (lower_bound, upper_bound도 없어..) JAVA의 배열 뒤집기 시간측정을 해보겠습니다. n은 10,000,000으로 측정해봤습니다. 배열 long beforeTime = System.currentTimeMillis(); int[] arr = new int[n]; for(int i = 0; i < n; i++) { arr[i] = i; } int[] arr1 = new int[n]; for(int i = 0; i < n; i++) {.. 2023. 3. 14.
알고리즘 학습 방법 알고리즘 오픈톡방에 있다 보면 여러 가지 알고리즘 학습 관련 질문들이 들어옵니다. 이에 대한 답변들을 정리해서 블로그 링크를 드리게 위해 작성해 봤습니다. 1. 백엔드 개발자인데 JAVA로 알고리즘을 학습해야 할까요? 언어는 그저 도구이며, 가장 자신 있는 언어로 알고리즘 학습을 하는 게 맞습니다. 그러나, 특정 회사들은 직군별 코딩테스트 언어를 제한하고 있습니다. 이러한 회사들을 위해서라면, JAVA로 준비하는 게 좋으나 한 가지 언어를 잘 다룰 수 있다면, 다른 언어로 알고리즘 준비를 하는 데는 얼마 걸리지 않다고 생각이 들기 때문에 자유롭게 선택하셔서 하시면 될 거 같습니다. 2. 알고리즘 학습은 어떻게 하는 게 좋을까요? 학습 방식은 사람마다 다릅니다. 저는 특정 알고리즘으로 풀리는 문제의 소스를.. 2023. 3. 6.
배열 vs ArrayList vs Set 무엇이 더 빠를까? https://www.acmicpc.net/problem/27622 27622번: Suspicious Event Input begins with a line containing an integer N (1 ≤ N ≤ 1000) representing the number of events in the given record. The next line contains N integers Ai (−1000 ≤ Ai ≤ 1000; Ai ≠ 0) each representing an event in chronological order. It is gua www.acmicpc.net 궁금증은 해당 문제로 해결하였습니다. 문제 지문을 번역해드리자면 0이상의 상수 = 로그인 0이하의 상수 = 로그아웃 로그인하지 않고 .. 2023. 3. 1.
비트연산 과연 더 빠른가? 비트연산이란? "한 개 혹은 두 개의 이진수에 대해 비트 단위로 적용되는 연산이다." - 위키백과- 비트연산을 사용하는 이유? 컴퓨터가 자료형(int, long double 등등)을 비트로 변환하는 작업을 사용자가 미리 해주기 때문에 빠름 대표적으로 > = /이 있음 정말로 비트연산이 기본 연산보다 빠른가? 여러 언어들마다 실행시간을 측정할 수 있습니다. java 곱하기 + 나누기 long beforeTime = System.currentTimeMillis(); long n = 1, m = 1; for(int i = 0; i < 1000000; i++) { for(int j = 0; j < 5000; j++) { n *= 2; m *= 2; n /= 2; m /= 2; } } long afterTime .. 2023. 2. 28.
[CRP] 개선되었으면 하는 사항들(2023-03-29) 첫 작성일 : 2023 - 02 - 26 ※ 개선될 시 1개씩 체크 [전문기술] 1. 마이스터빌에서만 분해가 되는 시스템 - 마이스터빌을 제외한 다른 마을에서도 분해가 되었으면 합니다. - 일일 보스를 매일 도는 저는 보스를 돌면서 나오는 장비 아이템들을 분해를 하기 위해 매번 보스를 돌다 말고, 마이스터빌 마을에 입장해 분해를 한 후, 다시 보스를 도는 방식으로 하고 있습니다. - 마이스터빌에 입장과 동시에 ON/OFF 스킬 중 하나인 "불독의 파이어 오라"가 OFF가 되어 다시 켜야 하는 불편함이 발생합니다. 2. 연금술만 10개가 자체분해가 가능한 시스템 - 연금술을 제외한 장비, 장신구를 배운 캐릭터의 경우 5개만 분해가 가능하지만, 연금술의 경우 10개가 분해가 가능하다는 장점을 가지고 있어, .. 2023. 2. 23.
메모리 제한 풀기 백준 문제를 풀다보면, "메모리 초과" 일명 "메초"라고 불리는 result를 받을 수 있습니다. 그럴때마다 보통은 "사용하지 않아도 되는 배열 및 메모리 감소"를 하여 "메모리 초과"를 해결합니다. 그러나, 그렇게 해도 되지 않는 몇몇 외국어 문제들이 존재합니다. 그런 경우에는 2가지 방법이 있습니다. 1. System.gc()로 gc를 수동으로 실행하기 System.gc(); System.gc()는 반환이 없는 void로 그냥 선언하시면 됩니다. 이렇게 할 경우, 더 이상 사용하지 않은 메모리들을 수동으로 gc를 실행시켜 제거해 줍니다. (보통은 선언하지 않고 사용해도 JAVA는 자동으로 GC가 처리를 해줍니다.) ※ 주의 : PS에서만 사용하시고, 실제 현업에서는 사용하지 마세요. https://c.. 2023. 2. 9.
[CRP] 조합 방탈출 메이플스토리의 "로미오와 줄리엣" 파티퀘스트에는 연구실을 수색해 숨겨진 문을 찾는 퀘스트가 존재합니다. 해당 요소와 "좀보이드", "배틀그라운드" 등과 같은 게임의 파밍 시스템을 조합하면 어떨까 생각했습니다. 특정 위치에서 "NPC/채집"키를 누를 시, 상점 이미지가 뜹니다. 이후 해당 상점에서 원하는 아이템들만 골라서 구매한 후, 한 명의 파티원에게 모아 조합하여 새로운 아이템으로 방을 탈출하는 시스템 입니다. 또는 방탈출 종류가 아니더라도, 특정 아이템을 사용해서 몬스터를 잡거나, 처치하는 방식으로도 가능합니다. ex) java 소스코드 import java.util.ArrayList; import java.util.Random; public class Main { static boolean succ.. 2023. 2. 9.
[CRP] 몬스터 땅따먹기 캐릭터가 메이플스토리의 몬스터가 되어 이동하면서 서로 땅따먹기 게임을 하는 미니게임입니다. 미니게임판은 이런식으로 양 끝에서 2명~4명의 플레이어가 시작합니다. WASD나 ←→↑↓로 이동합니다. 이런식으로 이동하면서, 이동한 칸에는 색깔을 입히게 됩니다. 주황버섯과 예티처럼 예티가 지나간 길을 주황버섯이 지나가게 되면 색깔이 주황버섯의 색깔로 변경됩니다. 최종적으로 가장 많이 먹은 캐릭터가 이깁니다. ex) 소스코드 #include #include #include #include using namespace std; int winner, max_eat_box; int map[21][21]; bool visited[21][21]; vector player(4); int dx[] = { 1, 0, -1, 0.. 2023. 2. 2.
728x90
반응형