분류 전체보기 (102) 썸네일형 리스트형 [WPF] 왜 WPF인가? 외관 및 로직 분리 HTML 세계에서는 디자이너와 개발자의 영역이 분리되어 있다. 디자이너는 HTML 파일과 CSS파일에서 작업해 외관을 설명하는 동안 개발자는 자바스크립트 파일에서 작업한다. 마이크로소프트는 WPF에서도 동일한 접근방식을 채택했다. 그러나 HTML은 데스크탑 애플리케이션용으로는 너무 제한적이기 때문에 간단한 XAML(XML Application Markup Language)을 만들어냈다. XAML은 XML기반이기 때문에 여러가지 XAML 고유 기능이나 XML 도구들을 처리할 수 있다. 따라서 화면을 생성하게 되면 .xaml과 .xaml.cs(코드 비하인드) 두 파일이 만들어진다. 이와 별개로 WPF는 다음과 같은 기능을 도입했다. ① 컨트롤 조합 대부분의 컨트롤은 다른 컨트롤을 호스팅할.. [백준] 10250번: ACM 호텔 문제링크 : https://www.acmicpc.net/problem/10250 문제풀이 방은 엘리베이터에서 가까운 101 - 201 - 301 - 401호.. 의 순서로 배정된다. 따라서 배정되는 방 번호는 아래와 같은 규칙으로 계산할 수 있다. 입력받은 호텔의 층 수로 나눠서 계산이 가능하다. 단, 30과 같이 6으로 나눠떨어지는 수들은 나머지가 0이 되므로 저대로 계산하게 되면 0층, 6호가 나온다. 나눠떨어지는 경우에 대해서만 예외처리를 해주면 된다. 소스코드 /* * 백준 10250번: ACM 호텔 */ #include using namespace std; int main() { int T; cin >> T; cout.fill('0'); while (T--) { int H, W, N; cin >.. [백준] 1011번: Fly me to the Alpha Centauri 문제링크 : https://www.acmicpc.net/problem/1011 문제풀이 y지점에 도달하기 전 마지막 이동은 항상 1이어야 한다. 따라서 이동거리는 1 2 2 1, 1 2 3 2 1, 이런 식으로 점차 늘어났다가 줄어드는 형식이다. 찾은 규칙 1 경우의 수를 모두 나열해 보면 총 이동거리의 제곱근이 정수인 경우, 앞 뒤로 일정한 규칙이 보인다. 4의 제곱근은 2로, 정수이다. 따라서 이동거리는 위와 같이 대칭이 되는 구조이며 4를 포함하여 앞으로 두 경우는 장치 작동 횟수가 2 + 1 (제곱근 + (제곱근 - 1)) 4를 포함하지 않고, 뒤로 두 경우는 장치 작동 횟수가 2 + 2 (제곱근 * 2) 이다. 처음에는 이렇게 복잡하게 생각하여 문제를 풀었는데, 문제를 다시 보니 단순히 더해서 .. [백준] 1193번: 분수찾기 문제링크 : https://www.acmicpc.net/problem/1193 문제풀이 찾을 수 있는 규칙 1. 위의 표는 분자와 분모 합이 같은 것끼리 한 줄에 나열한 것이다. 2. 최대 분모는 순차적으로 늘어난다.3. 최대 분모가 짝수일 때와 홀수일 때 분자 분모가 증가하는 모양이 서로 반대이다.4. 분자와 분모가 1씩 증가, 감소한다. 그러면 우선, 입력받은 숫자의 최대 분모가 몇인지부터 알아야 한다. 각 줄의 제일 큰 수 (1, 3, 5, 10, 15 ...)로 비교를 하면 되겠다.while (sum < N) { sum += ++max_denominator; }순차적으로 더하면서 입력받은 숫자의 최대 분모(max_denominator)가 몇인지, 그 줄의 제일 큰 수(sum)는 몇인지 알아낸다. .. [백준] 2292번: 벌집 문제링크 : https://www.acmicpc.net/problem/2292 문제풀이벌집 모양을 보면,1은 1번,2부터 7은 2번,8부터 19까지는 3번을 지난다. 1번1 2번 1 + 1 ... 1 + 6 3번 1 + 1 + 6 ... 1 + 6 + 6 + 6 4번1 + 1 + 6 + 6 + 6 ... 1 + 6 + 6 + 6 + 6 + 6 + 6 위와 같이, 6이 점차 늘어나는 등비수열의 규칙을 이루는 것을 볼 수 있다.(이전의 합 + 6 * ++count) 소스코드 /* * 백준 2292번: 벌집 */ #include using namespace std; int main() { int N; cin >> N; int sum = 1; int count = 0; while (true) { if (N [백준] 2438번: 별 찍기 - 1 문제링크 : https://www.acmicpc.net/problem/2438 문제풀이 i = 0 --- 별 한 개 출력(j = 0), 엔터 i = 1 --- 별 두 개 출력(j = 0, 1), 엔터 i = 2 --- 별 세 개 출력(j = 0, 1, 2), 엔터 ... for문을 두 번 사용하여, 줄에 해당하는 별 개수만큼 출력한 후 엔터를 출력한다. 소스코드/* * 백준 2438번: 별 찍기 - 1 */ #include using namespace std; int main() { int N; cin >> N; for (int i = 0; i < N; i++) { for (int j = 0; j [C++] 문자열, 입력 C++에서 문자열을 사용하는 방법은 두 가지가 있다. 1. char 배열 사용 char str[5] = { 'a', 'b', 'c', 'd', 'e' }; 이 방식은 C언어에서 쓰던 방식과 같다. 문자열 입력 cin으로 문자열을 입력받게 되면 띄어쓰기, tab, enter 단위로 잘라서 받기 때문에 공백을 포함한 문자열을 한번에 입력받을 수 없다. #include int main() { char arr[100]; std::cin >> arr; std::cout [백준] 1152번: 단어의 개수 문제링크 : https://www.acmicpc.net/problem/1152 문제풀이입력한 문장의 모든 띄어쓰기 개수를 센 다음, 문장의 맨앞, 맨 뒤에 공백이 오는 경우를 고려해 카운트 다운한다. 소스코드 /* * 백준 1152번: 단어의 개수 */ #include #include int main() { std::string str; getline(std::cin, str); int words = 0; for (int i = 0; i < str.length(); i++) { if (str[i] == ' ') words++; } if (str[0] == ' ') words--; if (str[str.length() - 1] == ' ') words--; std::cout 이전 1 ··· 7 8 9 10 11 12 13 다음