inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

5-U

5-U 드래곤 커브 질문

495

김태윤

작성한 질문수 2

0

안녕하세요 큰돌님

드래곤 커브 질문입니다.

저는 이 문제에서 회전에 대한 설명이 있는 것을 보고

2차원 좌표계를 이용해 여태까지 만들어진 좌표를 가장 최신의 점을 중점으로 평행이동 후 변환 좌표계 연산 후 다시 평행 이동하는 방법을 사용했습니다. 하지만 너무 오래 걸렸고 테스트 케이스도 실패해서 강의에 설명을 보니 정말 간단하게 규칙을 찾아서 풀으셨더라구요.

혹시 코딩테스트 문제에서 좌표계 transform을 사용하는 문제가 나올 수도 있는지 궁금해서 질문드립니다.

http://boj.kr/46fef7422bd649c4a63eaa73da33af4c

C++ 코테 준비 같이 해요!

답변 1

1

큰돌

안녕하세요 태윤님 ㅎㅎ

고생 좀 하셨네요.. ㅎㅎ

일단.. 문제에 좌표연산은 나오기도 하지만 코테 수준에서는 절대 안 나옵니다.

그래도 좀 더 자세히 설명하자면 다음과 같습니다.

좌표연산은 대표적으로 다음과 같습니다.

  • 벡터연산(단위벡터를 만들어서 2차원 또는 3차원 좌표를 곱셈 등을 이용해 진행)

  • 벡터 내적 다음 그림을 참고해주세요.

image

이 수준은 정말 구현하기가 쉽습니다. 그냥 곱하기 더하기만 하면 되는 것이죠.

 

근데 태윤님의 코드처럼. 중심점 잡아서 돌리는 것도 있긴 한데요. 사실 코드 만들기가 제일 빡세긴해요..

        newY = rotateY + lastP.first;
        newX = rotateX + lastP.second;

알고리즘 문제중에서 가장 어려운 문제는 "기하"입니다. 근데 이런 기하문제조차 문제가 100이라고 했을 때 90은 기하인 척하는 "규칙찾기"문제가 많습니다. (이런 기하 문제를 만들기가 힘들기 때문에 그래요. 상위 0.1%를 위한 문제가 기하다라고 생각하시면 되요.)

되도록 규칙을 찾을 수 있다면 규칙을 찾아서 하는 것이 좋습니다.

참고로 C++에서 transform이라는 함수도 있습니다. 이는 이터러블한 객체를 대상으로 "전체적" 또는 "부분적"으로 어떠한 함수를 적용시킬 수 있는데요. 브로드캐스팅할 때 쓰일 수도 있습니다. (근데 코테에는 절대 안 나올거에요)

#include<bits/stdc++.h>
using namespace std; 
string str = "Hello Kundol";
int main() { 
    transform(str.begin(), str.end(), str.begin(), ::toupper);
    cout << str;
    
    return 0;
}
// HELLO KUNDOL

 

0

김태윤

답변 감사합니다!!

1-E질문입니다!

0

518

2

3-L 틀린 부분 피드백 부탁드립니다.

0

821

2

1-A문제 순열재귀함수 질문입니다.

0

384

1

1-A 일곱난쟁이문제입니다

0

456

1

문제 풀 때 방향성에 대해

0

800

1

맥에서 vs code로 실행 관련 질문입니다

0

523

1

17071번 메모리 초과

0

386

1

1-C질문입니다!

0

421

2

2-B BFS 시간초과질문

0

630

2

1-O 13번 라인

0

442

1

6-J 놀이공원 문제 질문

0

381

1

구현관련 질문

0

484

1

강의 교안

0

319

1

실력을 더 올리고나서 강의를 보는 것이 맞을까요?

0

545

1

안녕하세요! 재귀함수에 관해서 질문드립니다

0

536

1

1-K

0

473

2

3-G번 질문있습니다.

1

473

3

3-C 실행 시간 질문드립니다.

0

493

1

4-A 문제 풀이 질문있습니다.

0

590

2

비트마스킹 연산자 "1의 보수" 영문 표기법

0

435

1

격자탐색 문제에서 BFS 시간복잡도 질문드립니다.

0

334

1

3-O go 함수 질문 드립니다.

1

447

2

4-A 출력 질문

0

305

1

1주차 1-O 질문드립니다

0

259

1