본문 바로가기

환영합니다. 이 블로그 번째 방문자입니다.

분류 전체보기

  (98)

Springboot와 AWS S3 연동하기(+Controller, formData) Springboot에서 파일(사진, 영상 등)을 외부 저장소(AWS S3)에 업로드할 때. 1. aws 계정 생성 → 처음이라면 프리티어로 5GB까지 업로드가 무료 2. aws s3 버킷 생성 이 과정에서 ACL 접근을 허용할꺼냐 이런거 물어보는 것도 Enable ACL 선택! create bucket을 선택하면 끝! 생성된 bucket을 선택하여 Permissions → Bucket Policy 의 아래의 내용 추가 3. IAM 계정 생성 상단 네브바의 계정 → Security credentials → Access management → Users → Add users 4. IAM access key, secret key 발급 springboot에서 S3에 연결할 때, 내가 접근 권한이 있는 사용자라는..
[아키텍처] 마이크로 서비스 아키텍처(MSA) 높은 응집력과 느슨한 결합력 "같은 이유로 변경되는 것을 함께 모아라. 다른 이유로 변경이 되는 것은 분리하라." -로버트 마틴의 단일 책임 원칙 마이크로 서비스의 2가지 기본 속성 1. 각 카이크로 서비스는 독립적으로 배포될 수 있다. 그렇지 않으면 마이크로 서비스 애플리케이션은 배포 시점에 여전히 모놀리식이 된다. 2. 마이크로서비스는 교체할 수 있다. 이 역량은 자연스럽게 마이크로서비스의 크기를 제한한다. 마찬가지로 이는 서비스의 책임 또는 역할을 이해하기 쉽게 만든다. 마이크로 서비스의 핵심 원칙 1. 자율성 : 각 서비스는 다른 서비스와 독립적으로 변경되고 운영된다. 2. 회복성 : 장애를 격리하는 자연스러운 매커니즘 → 한 부분에서 장애가 발생해도 다른 부분에는 장애가 발생하지 않음. 장애가 ..
[🐾 일지] SpringBoot 3.x.x + mariadb 연동 환경설정(docker) 항상 MySQL workbench만 사용하다가 한번 워크벤치 설정을 잘못하는 바람에 모든 권한에 막아져버렸다...ㅎ docker에 mariadb를 사용해서 연동하게 된 계기랄까. 결과적으로 이제 MySQL보다 mariadb 가 훨씬 편해졌다 프로젝트 설정 시에 데이터베이스 구축할 때 mariadb 데이터베이스 설정하는 방법에 대한 포스트이다. 팀원한테 정리 잘했다고 칭찬받음 뿌-듯 ✓ [조건] docker는 설치가 되어 있어야 합니다! 1. cmd or terminal에서 최신버전 mariadb 설치 docker pull mariadb:latest 2. 도커 이미지 확인 → 아래 노란색 네모와 같이 나타나면 성공! docker search images 3. 도커 컨테이너 생성 및 실행 우리 팀은 mysq..
[🐾 일지] object references an unsaved transient instance - save the transient instance before flushing Station과 Video는 1:1 연관관계를 가지고 있다. 1. 프론트에서 video file과 station 정보들 입력받기 2. video를 데이터베이스에 저장 3. station의 정보를 저장하면서 video도 함께 저장해줌 이것이었는데 하다보니 오류가 났다. Station은 video_id를 FK로 참조하고 있는데 video를 저장하지 않은 상태에서 참조하려다 보니 발생한 문제였다. 🍎 해결방법 @OneToOne → @OneToOne(cascade = CascadeType.ALL) 위와 같이 바꿔주어 영속성 전이 설정을 해준다. Station이 저장될 때 Video도 함께 저장을 해주는 것이다. StackOverflow에서 찾아보니깐 나중에 삭제할 때 문제가 될 수도 있다고 하는데 @ManyTo..
[🐾일지: JPA ] JPA date 에 default now() 넣기 엔티티 컬럼을 작성하다가 생성일자 같은 컬럼명을 작성할 일이 생겼다. 1. Application 클래스에 @EnableJpaAuditing을 추가한다 → 나는 Application 에 넣었지만 필요하다면 @Configuration 클래스와 함께 사용해도 된다 @EnableJpaAuditing @SpringBootApplication public class StackersApplication { public static void main(String[] args) { SpringApplication.run(StackersApplication.class, args); } } 🍒 EnableJpaAuditing Enable + Jpa + Auditing : Jpa "감시"를 가능하게 함 시간에 대해 자동으로 ..
[Java: JPA] 01. JPA와 환경설정 JPA 를 사용하는 이유? 기존의 Mybatis 를 사용했을 때의 복잡한 엔티티 매핑문제와 단순 sql 코드 작성 시간을 줄일 수 있기 때문에 생산성 ⬆, 유지보수 용이, 성능, 표준 패러다임의 불일치 해결(상속, 연관관계, 객체 그래프 탐색, 비교) SQL 중심의 개발에서 객체 중심으로 개발 가능 JPA란? → Java Persistance API : 자바 영속성 API → Java ORM 표준 ✅ ORM이란? 더보기 ORM : Obejct relational mapping → 객체 관계 매핑 ORM 프레임워크가 객체와 관계형 대이터베이스를 중간에서 매핑해준다. → JAVA 와JDBC 사이에서 다리 역할 JPA 환경 설정 0. H2Database 설치 후 h2/bin 폴더에서 ./h2.sh 실행 → l..
[Programmers: JAVA] 단어 변환 https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 쉬운 문제이기는 했지만 나중에 이 문제를 봤을 때 BFS로 풀 생각을 할 수 있을지는 모르겠다 경로 탐색에서는 DFS를 더 많이 쓰는 스타일이라 BFS도 함께 구현해 보아야 겠다 import java.util.LinkedList; import java.util.Queue; // 단어 변환 public class Solution { static class Word{ String word; int d..
[Programmers: JAVA] 네트워크 https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 위 문제와 유사하다는 생각이 들었다 위 문제는 플로이드-워샬 알고리즘으로 풀었는데 이번에는 DFS/BFS 연습을 위해 다르게 풀어보도록 하겠다 DFS - 추후 개선해야 할 코드이긴 하나 일단 올림 public class Solution { static int answer; static boolean visited[]; public int solution(int n, int[][] computers) { visited ..
[🫥 오류 해결] WebSecurityConfigurerAdapter, authorizeRequest() deprecated Spring Security 공부를 하다가 오류가 발생했다. 강의에서는 잘 되던 인터페이스 상속이 되지 않는 문제... 찾아보니 이제 지원이 안되고 @Bean 으로 생성해서 써야 한다고 한다. @Configuration @EnableWebSecurity public class SecurityConfig{ @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf().disable(); http.authorizeRequests() .antMatchers("/user/**").authenticated() .antMatchers("/manager/**").access("hasAnyRole('ROLE_MA..
[Java:Spring Framework] 01. 스프링의 개념 ⭐️ 프레임워크 vs 라이브러리 프레임워크 : 뼈대나 기반구조 → 흐름을 프레임워크가 쥐고 있음 라이브러리 : 단순 활용 가능한 도구들의 집합 → 흐름을 사용자가 쥐고 있음 프레임워크는 가져다가 사용한다는 개념보다는 프레임워크에 들어가서 사용한다는 느낌/관점으로 접근할 수 있다. 라이브러리는 사용자가 가져다가 사용한다는 개념이다. 프레임워크는 변경이 어렵기 때문에 자신이 원하는 프레임워크를 제대로 가져다 쓸 수 있어야 한다. ⭐️ Spring Framework란 무엇이고 왜 사용하는가 스프링 프레임워크는 자바 어플리케이션을 개발할 때 구조적 기능 틀을 제공하는 오픈소스 어플리케이션 프레임워크이다. 백엔드 코드를 구축할 때 프레임워크 없이 개발하려면 Servlet, JDBC 설정 등을 직접 모두 해야 하지..
SSAFY 8기 1학기 회고록 내 블로그에 SSAFY에 관련된 포스팅이 하나도 없어서 드디어 끄적인다. 사실 회고록을 쓰기 위해 지금까지 기다려왔달까... (너무 바쁘게 지나가서 쓸 수 없었다는 말은... 핑계인가요?) 항상 블로그 포스팅을 할 때마다의 생각이지만 저 너머의 누군가에게 도움이 되었으면..💕 ✔️ 내가 SSAFY를 하게 된 이유 코테 입구컷... 이대로 가다간 취업 못하겠는데..? 나도 다른 사람들과 동일하게 졸업을 하고 취업을 준비했다. 졸업 프로젝트와 개인 프로젝트가 각각 1개씩 있었지만 치명적인 약점이 알고리즘이었다. 대학교 알고리즘 수업에서는 손코딩으로 배워서 실제 문제를 풀어본 적이 없다. 한 학기동안 휴학을 하고 알고리즘 공부를 하기도 했었는데 실력이 느는 느낌도 없고, 문제도 계속 못 풀었다. 나름 노력을 ..
[Vuesax 길들이기] input 사이즈 조절, 내가 해냄 하 진짜 하 진짜 고구마 머문 입 방금 사이다 마시고 왔읍니다 vuesax를 이용해 프로젝트 웹 사이트를 제작하다 불편한 상황에 마주해버림 바로바로...(생각 하기도 싫다) ? 저 옹졸한 input 태그에 무엇을 쓰나요 제목, 본문 둘 다 불가능 저 것을 키워보기로 합니다 ? 변하지 않습니다. 그래서 개발자모드로 vuesax input에 대한 컴포넌트 분석을 시작합니다... 그래서 결국 해내버린 나 자신 자그마치 40분이다 갈았다구요 바빠 죽겠는데! 어떻게 했냐면요 여러분... ⬆️ 요 한 줄짜리 코드를... 다 뜯어 고쳐서 분해했습니다...^^ 제목을 작성하세요제목 ⬆️ 하하... textarea 속성이 필요한 부분은 태그를 textarea로 변경함 요소 태그 분해 후 스타일 적용까지... 나 좀 ....
[백준 19640: JAVA] 화장실의 규칙 https://www.acmicpc.net/problem/19640 19640번: 화장실의 규칙 위와 같이 줄을 선 경우를 생각해보자. (x, y) 는 사원의 근무 일수가 x, 화장실이 급한 정도가 y임을 나타낸다. [x, y]는 해당 사원이 데카임을 의미한다. 즉, 위의 그림에서 데카는 3번 사원이다. www.acmicpc.net [1회차] 11월 13일, 킹받는다고 추천받은 문제 문제 접근 방법 (사용 자료구조, 알고리즘) 입력 (1) 사원 N명, 회장이 지시한 줄 수 M, 데카 앞에 있는 사원 수 K (2) Employee 객체( 사원번호, 근무일수, 화장실 급한 정도, 서 있는 열) 생성해서 객체 배열을 만들어 준다. 객체 배열은 Line[M][N%M == 0? N/M : N/M + 1] 로 선언..
[프로그래머스: JAVA] 문자열 압축 https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [1회차] 11월 8일, 문제 추천받음 문제 접근 방법 (사용 자료구조, 알고리즘) 일단 스토리라인을 적어보자면 다음과 같다, 사실 반복문으로 풀어야 하는 문제인거 알고 있었는데(6개월 전에 파이썬으로 품) 도전해보고 싶었음... 도전 정신 쯤으로 봐주길... [조건과 출력] 문자열은 제일 앞에서부터 잘라야… ⇒ 가장 짧은 길이 출력하기 주어지는 문자열을 자를 수 있는 경우들 (1 ~ N)개 이지..
[백준 14503: JAVA] 로봇 청소기 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net [1회차] 11월 12일, 랜덤 문제 돌리기 문제 접근 방법 (사용 자료구조, 알고리즘) 로직(쌉구현) (0) 현재 칸 청소 ( map에 2로 표현) (1) 현재 방향을 기준으로 왼쪽 방향의 칸부터 탐색하며 해당 칸이 0인(청소가 가능한 구역) 칸이 존재하는지 확인 - 존재한다면 2-1 의 조건에 부합하므로 방향과 칸만 이동시키고 청소기 클래스에 있는 isFind를 true 로 설정 후 반복문 ..
[프로그래머스: JAVA] 양궁대회 https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [1회차] 11월 11일, 문제 추천받음 문제 접근 방법 (사용 자료구조, 알고리즘) 일단 스토리라인을 적어보자면 다음과 같다 라이언이 이겨야 함, 라이언이 못 이기는 경우는 -1 출력 이기려면 ? 총합 점수가 많아야 해 -> 점수 어떻게 내는데? k 점을 어피지랑 똑같은 갯수로 맞추면 점수는 어피치꺼 k 점을 어피치보다 많이 맞추면 점수는 라이언꺼 k 점을 둘 다 못 맞추면 0점 -- 일단 점수..
[백준 : JAVA] 움직이는 미로 탈출하기 https://www.acmicpc.net/problem/16954 16954번: 움직이는 미로 탈출 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 www.acmicpc.net [1회차] 11월 10일, 문제 추천받음 문제 접근 방법 (사용 자료구조, 알고리즘) 입력 (1) 8개 줄에 걸쳐서 주어지는 체스판의 상태를 walls[8][8][8](3차원 int 배열)로 저장 (2) 가장 처음에 나온 벽('#')이 가장 위에 있으므로 이것을 찾으면 firstIdx를 해당 열로 변경해준다.(1번만) 로직 (0) 만약 firstIdx가 변하지 않았다면(-1) 벽이 없으..
[백준 17837: JAVA] 새로운 게임2 https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net [1회차] 10월 31일, 스터디 문제 접근 방법 (사용 자료구조, 알고리즘) 입력 (1) N, K, int map[N][N] : 게임판에 대한 정보, int move[N][N][K+1] : 게임판에 말들의 이동에 대한 정보 저장, Horse horses[K+1] : 말에 대한 정보 저장 (2) Horse 클래스 : x(세로), y(가로), dir(이동 방향), idx(move 배열에서의 해당..
[백준 15684 : JAVA] 사다리 조작 https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net [1회차] 10월 29일 ~ 10월 30일 : 거드름의 결과랄까...^^ 문제 접근 방법 (사용 자료구조, 알고리즘) 이 문제는 시행착오가 많았어서 차례로 한번 보여줄까 한다 (1) 자료구조 (List + HashMap) + 조합 입력 (1) {N, M, H} (2) 연결할 수 있는 사다리의 후보군들을 저장해 놓는 candidates(Point 리스트)에 (N) * (H + 1)개의 사다리를 넣..
[BJ 17406] 배열 돌리기4 https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net [1회차] 8월 11일 강의 시간 이 문제 너무 기억이 남. 수업 시간에 처음 풀었는데 그냥 무지성으로 배열 돌렸다가 매우X1000 헤깔려서 결국은 사망해버렸다는 전설이 깃든 문제였음. 배열 대신 내가 돌아감. 문제 로직 따위는 없이 문제 조건에 따라 전부 for 문으로 옮겨버렸다. 그 때 어거지로 풀었던 코드를 공개합니다 뚜둔 더보기 import java.io.Bu..
[SWEA 1952] 수영장 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpFQaAQMDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [1회차] 8월 24일 스터디 문제 이 때, 문제 접근 방법을 몰라서 (이런 문제 스타일을 처음 풀어봤다) 아마 인터넷 해설을 보고 풀었던 것 같다. 생각치도 못했던 방법이라(그 때는 dfs, bfs 적용 따위는 하지 못했음) 나를 충격에 빠뜨렸던 문제였다. 코드 더보기 import java.io.BufferedReader; import java.io.FileInputStream; import ja..
[SWEA 2115] 벌꿀채취 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V4A46AdIDFAWu SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [1회차] 10월 2일날 풀었어서 코드만 첨부 더보기 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Solution { static int N, M, C, ans, max; static int map[][], honeys[]; static boolean isVisit..
[백준 17472] 다리만들기2 https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net 문제 접근 방법 1. 입력받기 : 입력을 받아서 2차원 배열에 지도 정보 저장 2. 섬의 개수 카운팅 & 섬 리스트에 저장 & 섬 구별 라벨링 섬 : 1이 뭉쳐있는 곳 -> dfs, bfs 로 찾기 섬 리스트에 저장 : Island 클래스를 만들어서 Point 객체 리스트를 변수로 넣어줌 섬 구별 라벨링 : dfs를 돌면서 섬마다 1부터 라벨링(인덱싱)을 해줌 3. 섬 간의 ..
DOM에서 노드 추가, 삭제하기 노드리스트(node list): querySelectorAll()메서드를 사용해 가져온 여러개의 노드 정보를 저장한 것 1. 텍스트 노드를 사용하는 새로운 요소 추가하기 (1) 요소 노드 만들기 - createElement() 메서드 document.createElement(노드명); ex) var newP = document.createElement("p"); (2) 텍스트 노드 만들기 - createTextNode() 메서드 document.createTextNode(텍스트); ex) var txtNode = document.createTextNode("텍스트 노드를 만들었다!"); (3) 자식 노드 연결하기 - appendChild() → newP와 txtNode 연결하기 → 텍스트 노드나 속성 노..
DOM에서 이벤트 처리하기 1. DOM 요소에 함수 직접 연결 var btn = document.querySelector("#btn"); btn.onclick = function(){ alert('버튼을 클릭했습니다.'); } 2. 함수 이름을 사용해 연결 var btn = document.querySelector("#btn"); btn.onclick = btnHandler; function btnHandler(){ btn.style.color = "red"; } ✅ event 객체에는 이벤트 정보만 들어있음, 만약 이벤트가 발생한 대상에 접근하려면 이벤트 처리기에서 예약어 this를 사용해야 함 var card = document.querySelector("#card"); card.onclick = function(event){..
DOM 요소 접근 및 속성 가져오기 '접근한다' : 웹 문서에서 원하는 요소를 찾아가는 것 선택자(selector) : class, id, tag 등을 이르는 말 εїз DOM 요소 접근 1. id 선택자로 접근하는 getElementById() → id 속성 : HTML 요소가 문서 안에서 중복되지 않도록 사용하는 CSS 선택자 요소명.getElementById("id명"); 2. class 값으로 접근하는 getElementsByClassName() → class 선택자는 웹 문서 안에서 여러 요소들이 사용할 수 있으므로 반환하는 요소가 2개 이상일 수 있음 → 반환 요소가 2개 이상 있을 수 있으므로 HTMLCollection 형태로 저장 요소명.getElementsByClassName("class명"); 3. tag 이름으로 접근..
[알고리즘 이론: JAVA] MST - Krsukal, Prim : 그래프 구조에서 간선들의 합이 최소가 되는 트리를 구현하기 위해 나온 알고리즘 1. MST를 Prim 알고리즘으로 구현하기 (인접행렬) import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; /* MST : 프림 알고리즘 이용 */ public class MST2_Prim { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(in.readLine().tr..
[CS 스터디: JAVA] (9) 합병(병합)정렬 합병(병합) 정렬(Merge Sort) : 분할 정복 방법(큰 문제를 작은 문제 단위로 쪼개서 해결하고 병합하는 방식)을 통해 구현 : 원소를 쪼개고 나서(분할) 다시 합병시키면서(정복) 정렬해 나가는 방식 : 빠른 정렬 : Divid, Conquer and Combine ✓ 배열 A 가 있다고 가정 , 나누기를 시작할 인덱스 p, 마지막 인덱스 r (A[p..r]) ✓ Divide (나누기, 큰 문제 → 작은 문제) ① q(p 와 r 사이의 수) 인덱스를 기준으로 배열을 2개로 나눈다. (A[p..q], A[q+1, r]) ② 계속해서 나눠주다가(재귀) p == r 이 될 경우(base case) 배열의 크기가 1이 되므로 종료한다. ✓ Conquer (병합하기, 작은 문제 → 큰 문제) ① 크기가 1..
[CS 스터디: JAVA] (8) 거품 정렬, 선택 정렬, 삽입 정렬 정렬 : 순서 없이 배열된 있는 자료들을 그 값에 따라 순서에 따라 재배열하는 것 오름차순 정렬 (Ascending, 작은 → 큰) 내림차순 정렬 (Descending, 큰 → 작은) 숫자 1 2 3 4 ... 10 9 8 7 ... 영어 a b c ... z (알파벳 순) z y x ... a (알파벳 역순) 한글 ㄱ ㄴ ㄷ ... ㅎ ㅎ ㅍ ㅌ ... ㄱ 거품 정렬(Bubble Sort) : 가장 단순하고 직관적인 정렬 알고리즘 : 간단한 코드가 필요할 때에나 복잡도가 중요하지 않은 문제에서 사용 : 인접한 두 원소를 비교(Compare)해 조건에 맞지 않다면 두 원소를 바꿔줌 (Swap) : Compare and Swap Cycle ✓ 1번째 순회 (Step 0) ① 배열의 첫번째 인덱스(i = 0..
[SWEA 2805] 농작물 수확하기 문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GLXqKAWYDFAXB SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2차원 배열에서 마름모꼴 영역의 합을 구하는 문제 나...솔직히 이 문제보고 BFS로 해보려고 했는데...접근 방법이 틀렸으니 맞을리가 있나... 예전에 다룬 포스팅 중 BFS 순회가 빠르다는 뭐 그런 얘기를 하면서 있던 그림을 보고 어떻게 해보려고 했지만 실패! 지금 생각해보니 풀려면 풀 수 있을지도 모른다..ㅎ (거짓말) 코드 import java.io.BufferedReader; impo..