본문 바로가기

Algorithm

(68)
[3190] 뱀 구분 덱 / 큐 구현 시뮬레이션 자료구조 문제 https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 풀이 일단 신경써야 할 부분은 뱀의 이동 방향 전환 일단 뱀이 이동할 판을 2차원 배열로 구성한다. 사과 (2) 벽 (1) 자신의 몸(1) 나머지부분(0) 과 같이 구성하는데, 벽과 자신의 몸은 닿으면 죽는 것이 동일하므로, 같은 변수로 넣어준다. 뱀의 이동 덱을 이용하여, 머리의 이동은 다음칸을 push_front, 꼬리의 이동은 꼬리칸을 pop_back으..
[2529] 부등호 구분 백트래킹 문제 https://www.acmicpc.net/problem/2529 2529번: 부등호 여러분은 제시된 부등호 관계를 만족하는 k+1 자리의 최대, 최소 정수를 첫째 줄과 둘째 줄에 각각 출력해야 한다. 단 아래 예(1)과 같이 첫 자리가 0인 경우도 정수에 포함되어야 한다. 모든 입력 www.acmicpc.net 풀이1 먼저 간단하게, 답 배열에 첫번째 자리 수를 집어 넣어놓고 백트래킹을 진행한다. 진행하고, 최댓값 최솟값 String을 갱신하는 방법이다. 코드(8ms) // // 부등호 // #include #include using namespace std; const int SIZE = 10; long long min_cost = 999999999999; long long max..
[C++] 2차원 벡터 초기화 2차원 벡터를 초기화 하는 방법 라이브러리 #include 둘다 미리 할당해 두고 값만 넣는 방법 vector v; int main() { cin >> N; v.assign(N, vector(N, 0)); for (int j = 0; j > v[j][i]; } } } 이거를 쓰자 2차원 벡터에 pushback으로 1차원벡터를 넣기 vector v; int main() { cin >> N; vector vec(N, 0); for (int j = 0; j > vec[i]; } v.push_back(vec); vec.assign(N, 0); }..
[CodingBat/java] blackjack 구분 Logic2 링크 https://codingbat.com/prob/p117019 CodingBat Java Logic-2 blackjack Given 2 int values greater than 0, return whichever value is nearest to 21 without going over. Return 0 if they both go over.blackjack(19, 21) → 21blackjack(21, 19) → 21blackjack(19, 22) → 19Go...Save, Compile, Run (ctrl-enter) codingbat.com 문제 두 수 중 21에 더 가까운 것을 출력하라 단, 21을 초과하는 수는 고려하지 않고, 둘다 21을 초과하면 0을 반환해라 풀이 둘..
[CodingBat/java] makeChocolate 구분 Logic2 링크 https://codingbat.com/prob/p191363 CodingBat Java Logic-2 makeChocolate We want make a package of goal kilos of chocolate. We have small bars (1 kilo each) and big bars (5 kilos each). Return the number of small bars to use, assuming we always use big bars before small bars. Return -1 if it can't be done.makeChocolate(4, 1, 9) codingbat.com 문제 풀이 1. 5kilo 짜리 big 초콜렛 바를 몇개나 쓸 것인가? go..
[CodingBat/java] luckySum 링크 https://codingbat.com/prob/p130788 CodingBat Java Logic-2 luckySum Given 3 int values, a b c, return their sum. However, if one of the values is 13 then it does not count towards the sum and values to its right do not count. So for example, if b is 13, then both b and c do not count.luckySum(1, 2, 3) → 6luckySum(1, 2, 1 codingbat.com 문제 13이 나오면, (13포함) 그 이후의 수는 연산에 포함시키지 않는다. 풀이 순서대로 13인지 검사해..
[CodingBat/Java] countXX 링크 https://codingbat.com/prob/p194667 CodingBat Java Warmup-2 countXX Count the number of "xx" in the given string. We'll say that overlapping is allowed, so "xxx" contains 2 "xx". codingbat.com 문제 주어지는 문자열에 "xx"가 몇번 등장하는지 반환하는 함수를 작성하자. 풀이 for문을 이용해, substring으로 2자씩 조회하면서, xx와 같은지 확인하자. point : 문자열을 비교하는 여러가지 방법 equals compareTo == equals 보통 자바에서 문자열을 비교하면, equals를 주로 사용한다. 객체의 순서를 바꿔도 결과는 동일하다..
[CodingBat/Java] front22 링크 https://codingbat.com/prob/p183592 CodingBat Java Warmup-1 front22 Given a string, take the first 2 chars and return the string with the 2 chars added at both the front and back, so "kitten" yields"kikittenki". If the string length is less than 2, use whatever chars are there. codingbat.com 문제 코드 public String front22(String str) { if(str.length()>=2){ String front = str.substring(0,2); retur..

728x90