프로그래밍 대회(11)
-
백준 괄호 9093 java
처음 풀때는 23분 소요(알고리즘 구상 + 에러해결) 다시 풀때는 7분 소요 (only code 작성시간) 처음 풀때 에러해결에서 시간을 좀 잡아 먹었다. 1. stack 초기화 안함 2. 29번째 줄 s.charAt(i) -> s.charAt(j) 잘못써서 고침 3. "(" 로 끝나는 줄 체크 후에 isEmpty 체크 1.항상 초기화를 잊는데, 진짜 중요하다. 이전루프의 쓰레기값이 결과를 망친다. 매 루프 돌때마다 동일한 자료구조의 객체를 쓸때면 초기화를 신경쓰자! 2. 변수 실수 -> 깔끔하게 작성하려다 함수로 급히 바꾸려다보니 i,j 가 헷갈린다. 3. 코드 작성 전에 주석으로 어떤 결과들이 예상되는지 표시하면 더 빨리 해결할 수 있었다. 이 문제의 경우 false 가 나올 경우의 수는 2가지다. ..
2022.03.17 -
1757 달려달려 (java)
이 문제는 dp문제이다. 어떻게 알았나? ( 최소,최대값을 구하라는 키워드, 최적해를 구성하는 작은 문제역시 최적해다. 라는 최적부분 문제 구조를 띔) -> dp문제를 계속 풀다보면 보인다.. dp 문제는 점화식만 나오면 참 간단한데, 점화식을 끌어내기가 참 어렵다. https://www.acmicpc.net/problem/1757 이 문제는 knapsack (배낭) 문제 풀이와 유사하다. 난 어디까지 접근했나. (M=1 의 점화식 까지만 구했다.) 더보기 M=1 일때의 점화식은 구했다. 하지만, 그 이상 접근법이 익숙치 않아 답을 찾게 되었다. M=1 의 점화식은 if(N>=2) { dp[2]=arr[1]; } for (int i = 3; i
2020.08.05 -
SWEA 모의역량테스트 탈주범 검거
현재 터널 상태 : p 다음 터널 상태: n p와 n으로 갈 수있는지 여부 판단 가능 온방향 상 in p -> n 1-> 1,2,5,6 2-> 1,2,5,6 4-> 1,2,5,6 7-> 1,2,5,6 온방향 하 p -> n 1-> 1,2,4,7 2 5 6 온방향 좌 p -> n 1-> 1,3,4,5 3 6 7 온방향 우 p -> n 1-> 1,3,6,7 3 4 5 0 1 2 3 상 좌 하 우 로 배치하여 (d+2)%4 를 하면 반대 방향을 바로 가르키도록 하였다. 상: 0 (0+2)%4 = 2 : 하 소스 코드 import java.util.*; import java.io.*; public class Solution { static int[][] directions; static int[][] dirs=..
2020.06.02 -
백준 2636 치즈
import java.util.*; import java.io.*; public class Main { static int [][] dirs = { {-1,0},{1,0},{0,1},{0,-1}}; static int N,M; static int [][] map; static boolean[][] v; public static void main(String[] args) throws IOException { BufferedReader br; br = new BufferedReader(new InputStreamReader(System.in)); //br = new BufferedReader(new StringReader(src)); StringTokenizer st = new StringTokenizer..
2020.05.15 -
순열 bitmasking 코드
알아야 되는 것 순열을 구현하는 방법은 대표적으로 2가지가 있다. 1. boolean 배열 2. 비트마스킹 이용 이 글을 쓰는 이유는 아래 압축과정 하나를 남기려고 쓴다. flag에 ( flag| 1
2020.05.08 -
n진수를 10진수로 변경하는 코드
static long toDigit10(char [] chars,int digits){ long num =0; for (int i = 0, j=chars.length-1; i < chars.length; i++,j--) { num+=(chars[i]-'0')* Math.pow(digits, j); } return num; } 예시 public static void main(String[] args) { char[] ch= "100".toCharArray(); System.out.println(toDigit10(ch,2));// 100 형태의 2진수를 10진수로 바꿔보자 } //4
2020.05.06