본문 바로가기

분류 전체보기96

스타크래프트 봇 만들기 #1 내가 학교에서 하는 동아리가 스타크래프트 봇 동아리인데 자바로 스타크래프트 봇을 만드는 동아리이다. 근데 이 동아리가 거의 터져가지고 어려워서인지 귀찮아서인지 모르겠는데 사람들이 다 나감. 동아리를 살리기 위해 스타크래프트 봇을 만들어 보려 한다. 스타크래프트 봇을 만드는 것을 올리면서 제작할 것이다. 일단 당연히 개발을 하려면 개발 환경부터 만들어야 한다. 개발 환경에 대한 것은 이부분 에서 따라 하길 바란다. 나는 하던 도중 오류가 발생했는데 그 오류들을 다뤄 주겠다. 먼저 자바 컴파일러 오류이다. 이런 경우에는 pom파일에서 아래 코드를 추가해 주면 된다. org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 UTF-8 2021. 10. 14.
[JAVA] 2019 카카오 개발자 겨울 인턴쉽 크레인 인형뽑기 게임 풀이 이 문제는 https://programmers.co.kr/learn/courses/30/lessons/64061 이곳에서 확인할 수 있다. import java.util.Stack; public static int solution(int[][] board, int[] moves) { int result = 0; Stack s = new Stack(); for(int i : moves){ for(int j = 0; j < board.length; j++){ if(board[j][i - 1] != 0){ if(!s.isEmpty() && s.peek() == board[j][i-1]){ s.pop(); result += 2; }else { s.add(board[j][i - 1]); } board[j][i-1.. 2021. 10. 13.
[JAVA] Consumer 함수적 인터페이스 람다식을 알아봤기에, 이제 함수적 인터페이스에 대해 알아보자 한다. 오늘은 함수적 인터페이스들 중 Consumer라는 인터페이스에 대해 알아볼 것이다. Consumer Consumer는 매개변수 값은 받지만 리턴해주는 값은 없는 인터페이스이다. accept메소드를 제공하며 매개변수를 받아 소비하는 역할을 한다. 그리고 다양한 오버 로딩 지원은 덤 Consumer 예제 import java.util.function.Consumer; public class Consunmer { public static void main(String[] args) { Consumer con = (a) -> System.out.println(a); con.accept("Hello world"); con.accept("Java".. 2021. 10. 13.
[JAVA]추상클래스, 추상매소드 추상 메소드란? 추상 메소드에 대해 알아보기 전에 추상화를 먼저 알아보자 추상화란 클래스 간의 공통점을 찾아내서 공통의 부모로 묶는 작업이다. 추상 메소드는 여러 객체에 공통되는 부분을 부모 클래스에 선언(구현도 가능)하고 자식 클래스에서 특징을 구현한다. 추상 메소드를 사용하는 이유 우리가 개발 또는 유지보수를 하다 보면 같은 부모를 두 번 정의한 부분이 있을 것이다. 그 부분을 간략하게 줄일 수 있다. 그리고 가끔가다가 재구현을 하려 했는데 안 할 때가 있는데 그때 재 구현하라고 알려준다. 추상 클래스의 장점 이제 추상 클래스의 장점에 대해 알아보자. 1. 부모 클래스에서 공통부분을 구현하면 자식 클래스에서 상속받아 구체화하기 편하다. 2. 자식 클래스에서 추상 메서드를 반드시 구현하도록 강요한다. .. 2021. 10. 8.
[JAVA] 람다식의 개념과 사용법 요즘 JDA로 디스코드 봇을 개발하고 있는데, 람다식이 많아서 이해하기 위해 공부를 했다. 일단 람다에 대해 알아보자. 람다란? 람다란 프로그래밍 언어에서 사용되는 개념으로 익명 함수를 지칭하는 용어이다. 현재 사용되는 람다의 근간은 수학이랑 기초 컴퓨터 과학 분야에서 쓰는 람다 대수라고 한다. 간단하게 말하면 수학에서 사용하는 함수를 단순하게 표현하는 방법이다. 익명함수 말 그대로 이름이 없는 함수이다. 익명 함수들은 공통으로 일급 객체라는 특징을 가지고 있다. - 일급 객체 : 일반적으로 다른 객체들에 적용 가능한 연산을 모두 지원하는 개체 이제 기본적인 람다의 개념을 알았으니 사용법을 알아보자. 역시 이번에도 말로 설명하는 것보단 먼저 보는 것이 좋을 것이다. public class Ramda { .. 2021. 10. 7.